code: 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);
      }
docs: Sends message.
  
  @param Message $message It is expected that the facility has verified and contains correct information.
  
  @return void
  
  @throws CascadeGatewayException