query('status', 'hadir'); // hadir | belum | semua $jabatan = $request->query('jabatan'); $q = $request->query('q'); $members = Member::query() ->with('attendance.recordedBy') ->when($status === 'hadir', fn ($query) => $query->hadir()) ->when($status === 'belum', fn ($query) => $query->belumHadir()) ->when($jabatan, fn ($query) => $query->where('jabatan', $jabatan)) ->when($q, fn ($query) => $query->search($q)) ->orderBy('nama') ->paginate(30) ->withQueryString(); $jabatanList = Member::query() ->whereNotNull('jabatan') ->distinct() ->orderBy('jabatan') ->pluck('jabatan'); $counts = [ 'hadir' => Member::hadir()->count(), 'belum' => Member::belumHadir()->count(), 'semua' => Member::count(), ]; return view('attendance.index', compact('members', 'jabatanList', 'counts', 'status', 'jabatan', 'q')); } }