Ну, я не мог решить вопрос, описанный выше, но это остается частью изучения того, что иногда, когда вы отпускаете его, это просто срабатывает, а иногда даже помогает вам.
Вместо того, чтобы делать 3 запроса (2 подзапроса + внешний запрос), я смог сократить все это до одного запроса, используя Eloquent от Laravel
Вот что случилось
// Get all cookers that have an active shift
$cookersWorking = User::where('type', 'cook')
->where('shift_active', 1)
->select('id')
->get();
После получения всех плит, которые имеют активную смену, я смог получить все плиты, у которых наименьшее количество блюд для приготовления:
// We will get the cooker that has the least orders to prepare
$cookerWithLessDishes = Order::select('responsible_cook_id', DB::raw('count(*) as d'))
->whereNull('end') // added this but is not in the original question
->whereIn('responsible_cook_id', $cookersWorking->pluck('id'))
->groupBy('responsible_cook_id')
->orderByRaw('count(*) ASC')
->first();
Я думаю, что смог сократить это до двух запросов. Если я ошибаюсь, поправьте меня.
Счастливое кодирование