validate([ 'groupBy' => ['nullable', 'string', 'in:region'], ]); $provinces = Province::query() ->where('active', true) ->get() ->map(fn ($branch) => [ 'id' => $branch->id, 'name' => $branch->name, 'region' => $branch->region, ]); if ($request->filled('groupBy')) { $provinces = $provinces->groupBy('region'); } return response()->json($provinces); } }