protected function send($method, $endpointUri, $body = null, array $headers = [])
    {
        $headers = array_merge($headers, self::getDefaultHeaders());
        $endpointUrl = $this->baseUrl . $endpointUri;

        $request = new Request($method, $endpointUrl, $headers, json_encode($body));
        $response = $this->getHttpClient()->sendRequest($request);

        return $this->handleResponse($response);
    }