static function makeRequest(\Psr\Http\Message\RequestInterface $request, ?array $requestOptions = null) {
        $client = static::getHTTPClient();
        
        if(!empty($requestOptions)) {
            if(isset($requestOptions['http_errors'])) {
                $client = $client->withOptions(array(
                    'obeySuccessCode' => !empty($requestOptions['http_errors'])
                ));
            }
            
            if(isset($requestOptions['timeout'])) {
                $client = $client->withOptions(array(
                    'timeout' => ((float) $requestOptions['timeout'])
                ));
            }
            
            try {
                $request = static::applyRequestOptions($request, $requestOptions);
            } catch (\RuntimeException $e) {
                return \React\Promise\reject($e);
            }
        }
        
        return $client->send($request);
    }