public function post(Payload $payload, $endpoint)
    {
        if (! Type::isValidWebhookType($payload->getAction())) {
            throw new \Exception(sprintf('Webhook "%s" isn\'t valid', $payload->getAction()));
        }

        $requestContent = [
            'headers' => ['Content-Type' => 'application/json'],
            'body'    => json_encode($payload),
            'timeout' => self::DEFAULT_REQUEST_TIMEOUT
        ];

        return $this->guzzleClient->post($endpoint, $requestContent);
    }