public function search(Request $request) { $postalCode = $request->input('postal_code', ''); $countryCode = $request->input('country_code', ''); $this->validCountry($countryCode); if (!strlen($postalCode)) { throw new StoreResourceFailedException("Invalid postal code '{$code}'"); } $model = ServiceSearch::where('country_code', $countryCode)->first(); if (!$model) { throw new StoreResourceFailedException("Service search not found to country '{$countryCode}'"); } $searchService = new $model->model_reference($model, $this->addressRepository); $searchService->setPostalCode($postalCode); $result = $searchService->search(); return response()->json(['data' => $result]); }