К подсчет столбец по случай, когда
Таким образом, вы можете получить весь этот счет статуса в одной сгруппированной записи.
Я думаю, что выможет сделать что-то вроде этого.
$collection = Order::with([
'orderItems',
'customer'
])->groupBy('cities')
->select(\DB::raw('
SUM(CASE
WHEN status = "delivered" THEN 1
ELSE 0
END) AS delivered_count,
SUM(CASE
WHEN status = "pending" THEN 1
ELSE 0
END) AS pending_count
'), 'membai')->get();
Надеюсь, это поможет вам.