validate([ 'region' => ['nullable', 'string', 'max:32'], 'region_id' => ['nullable', 'integer'], ]); $provinces = Province::query() ->when($request->filled('region'), function ($q) use ($request) { $q->whereHas('region', fn ($r) => $r->where('psgc_code', $request->string('region')) ->orWhere('code', $request->string('region'))); }) ->when($request->filled('region_id'), fn ($q) => $q->where('region_id', $request->integer('region_id'))) ->orderBy('name') ->get(); return $this->ok(ProvinceResource::collection($provinces)); } }