public function request(string $verb, string $route, $body = [], $headers = []): Collection
    {
        $request = $this->createRequest($verb, $route, $body, $headers);

        $request = $this->authenticateRequest($request);

        $collection = $this->dispatchRequest($request);

        return $collection;
    }