public function publish(array $events)
 {
     $this->eventBus->publish($events);
     foreach ($events as $event) {
         $this->recordedEvents[] = $event;
     }
 }
 /**
  * Wrapper to send events to bus
  *
  * @param $event
  * @param $key
  * @param $model
  * @param $data
  * @return bool|\Guzzle\Service\Resource\Model
  */
 protected function sendToBus($event, $key, $model, $data)
 {
     if (empty($data) || empty($event) || empty($key) || empty($model)) {
         return false;
     }
     $results = [];
     //        $time_start = microtime(true);
     //        $this->out("=> Sending events.");
     /**
      * Send in chunks of 10
      */
     $chunks = array_chunk($data, 10);
     foreach ($chunks as $data_chunk) {
         $results[] = $this->bus->sendMultiple($event, $key, $model, $data_chunk);
     }
     //        $time_end = microtime(true);
     //        $time_taken = number_format($time_end - $time_start, 2);
     //        $this->out("=> ".count($data)." events sent to bus in $time_taken Seconds.");
     return $results;
 }