orderBy('id', 'desc'); if ($filter = $filters['filter'] ?? null) { $query->where(function ($q) use ($filter) { $q->where('order_num', 'like', "%{$filter}%") ->orWhereHas('customer', fn($q2) => $q2->where('fullname', 'like', "%{$filter}%") ->orWhere('email', 'like', "%{$filter}%") ); }); } if (($status = $filters['status'] ?? null) !== null && $status !== '') { $query->where('status', (int) $status); } return $query->paginate($perPage); } }