filled('country_id')) { $query->whereRelation('institution', 'country_id', $request->country_id); } if ($request->filled('institution_id')) { $query->where("institution_id", $request->institution_id); } if ($request->filled('programlevel_id')) { $query->where("programlevel_id", $request->programlevel_id); } if ($request->filled('intake_id')) { $intakeId = $request->intake_id; $query->whereJsonContains('intake', $intakeId); } if ($request->filled('status')) { $query->where('status', $request->status); } if ($request->filled('search')) { $search = $request->search; $query->where('keywords', 'like', "%{$search}%"); } if ($request->filled('location')) { $location = $request->location; $query->where('location', 'like', "%{$location}%"); } })->latest()->paginate(10)->withQueryString(); } public function pluck(callable $query = null) { $baseQuery = Program::query(); if (is_callable($query)) { $query($baseQuery); } return $baseQuery->pluck('title', 'id'); } }