Код: Выделить всё
$query->orderByRaw("CASE WHEN tracking_eta IS NOT NULL THEN tracking_eta ELSE arrival_date END DESC")
->paginate(23)
->withQueryString();

И если я сделаю то же самое, но разбиваю на страницы 24, он вернет это:

Для справки: значения track_eta и Arrival_date в данном конкретном случае одинаковы для обоих идентификаторов:
Код: Выделить всё
id: 219 arrival_date: 2024-09-17 06:00:00
tracking_eta: 2024-09-17 08:58:00
id: 218 arrival_date: 2024-09-17 06:00:00
tracking_eta: 2024-09-17 08:58:00
Есть идеи, как я могу заставить результат всегда придерживаться одного и того же порядка?>
Мобильная версия