/**
  * @param Request $request
  *
  * @throws \Exception
  */
 public function broadcast(Request $request)
 {
     $interaction = Interaction::broadcast($request);
     $this->profile->add($interaction);
     $interaction->start();
     try {
         $this->driver->broadcast($request);
     } catch (\Exception $exception) {
         $interaction->fail($exception);
         $interaction->stop();
         throw $exception;
     }
     $interaction->stop();
 }