public function lookup(string $postcode, string $number): array
    {
        $input = [
            'postcode' => $postcode,
            'number' => $number
        ];

        // Create http request to send
        $request = $this->request($input);

        $response = null;
        try {
            // Make request and parse response
            return $this->parse(
                $response = $this->client->send($request),
                $input
            );
        } catch (GuzzleException $e) {
            // Catch request exceptions and try to parse the response
            if ($e instanceof RequestException && $e->hasResponse()) {
                return $this->parse($e->getResponse(), $input);
            }

            throw new HttpException('Guzzle: ' . $e->getMessage(), $request, $response, $e);
        } catch (Throwable $e) {
            // Only rethrow exceptions from our own package
            if ($e instanceof PostcodesException) {
                throw $e;
            }

            throw new LogicException('Uncaught exception: ' . $e->getMessage(), 0, $e);
        }
    }