query('search', '')); $status = (string) $request->query('status', 'all'); $countries = Country::query() ->when($search !== '', function ($query) use ($search): void { $query->where(function ($nested) use ($search): void { $nested->where('name', 'ilike', "%{$search}%") ->orWhere('official_name', 'ilike', "%{$search}%") ->orWhere('common_name', 'ilike', "%{$search}%") ->orWhere('display_name', 'ilike', "%{$search}%") ->orWhere('alpha2', 'ilike', "%{$search}%") ->orWhere('alpha3', 'ilike', "%{$search}%") ->orWhere('numeric', 'ilike', "%{$search}%"); }); }) ->when($status === 'active', fn ($query) => $query->where('is_active', true)) ->when($status === 'inactive', fn ($query) => $query->where('is_active', false)) ->ordered() ->paginate(50) ->withQueryString(); $activeCount = Country::query()->where('is_active', true)->count(); $inactiveCount = Country::query()->where('is_active', false)->count(); $totalCount = Country::query()->count(); return view('countries::index', compact('countries', 'activeCount', 'inactiveCount', 'totalCount', 'search', 'status')); } public function show(Country $country): View { return view('countries::show', compact('country')); } public function edit(Country $country): View { return view('countries::edit', compact('country')); } public function update(UpdateCountryRequest $request, Country $country): RedirectResponse { $country->update([ 'display_name' => $request->validated('display_name'), 'is_active' => $request->boolean('is_active'), 'sort_order' => (int) ($request->validated('sort_order') ?? 0), ]); return redirect()->route('countries.show', $country)->with('success', 'Country settings updated.'); } }