public function sendMessage(Message $message)
    {
        $exceptions = [];

        /** @var string $gatewayName */
        /** @var GatewayInterface $gateway*/
        foreach ($this->gateways as $gatewayName => $gateway) {
            try {
                $gateway->sendMessage($message);

                return;
            } catch (GatewayException $e) {
                $exceptions[$gatewayName] = $e;

                $this->logger->warning(
                    sprintf('(Cascade gateway: %s) %s', $gatewayName, $e->getMessage()),
                    ['exception' => $e]
                );
            }
        }

        throw new CascadeGatewayException($exceptions);
    }