я не знаю ->where(function ($qu) use ($filter))
об этом, где условие, но вы можете просто Попробовать это
$sum = $pipes->sum(function ($pipe) use ($filter) {
$total = 0;
$itemsQ = $pipe->items
->where('status', 'Terminé')
->where('closed', false);
if($filter == false) {
$items = $itemsQ->where('payment_id', 'exists', false)
->where('closed', false)
->where('locker', 'exists', false)->get();
}else {
$items = $itemsQ->where('payment_id', 'exists', true)
->where('closed', false)
->where('locker', 'exists', false)
->where('failed_to_pay', true)->get();
}
foreach ($items as $item) {
$total = $total + ($item->price * $item->quantity);
}
return $total;
});
не добавляйте столько аргументов в функцию where()
, скорее создайте экземпляр items
и добавить запрос на основе условия