code: public function publishBubbleEvent($eventName, $eventOrSubject, array $values = array())
      {
          if ($eventOrSubject instanceof Event) {
              $event = $eventOrSubject;
          } else {
              $event = new Event($eventOrSubject, $values);
          }
          $debug = $this->debug;
          while (!$event->isPropagationStopped()) {
              $debug->eventManager->publish($eventName, $event);
              if (!$debug->parentInstance) {
                  break;
              }
              $debug = $debug->parentInstance;
          }
          return $event;
      }
docs: Publish/Trigger/Dispatch event
  Event will get published on ancestor channels if propagation not stopped
  
  @param string $eventName      event name
  @param mixed  $eventOrSubject passed to subscribers
  @param array  $values         values to attach to event
  
  @return mixed