callApi(['key' => $this->api_key, 'address' => $this->address]); if($response->successful()) return $response->json(); if(isset($this->address['postal_code'])) { $response = $this->callApi(['key' => $this->api_key, 'address' => $this->address['postal_code']]); if($response->successful()) return $response->json(); } $response->throw(); } public function setApiCredentials($api_key): self { $this->api_key = $api_key; return $this; } /** * callApi * * @param array $parameters * @return Response */ private function callApi(array $parameters): Response { $response = Http::retry(3, 1000)->withHeaders([])->get($this->endpoint, $parameters); return $response; } }