1, 'inactive' => 2, 'pending' => 0, 'suspended' => 3, ]; public function paginate(array $filters, int $perPage): LengthAwarePaginator { $query = Customer::query()->orderBy('id', 'desc'); if ($filter = $filters['filter'] ?? null) { $query->where(function ($q) use ($filter) { $q->where('fullname', 'like', "%{$filter}%") ->orWhere('email', 'like', "%{$filter}%") ->orWhere('phone', 'like', "%{$filter}%"); }); } if ($status = $filters['status'] ?? null) { $statusInt = self::STATUS_MAP[$status] ?? null; if ($statusInt !== null) { $query->where('status', $statusInt); } } return $query->paginate($perPage); } }