eventProvider->getListenersForEvent($event); if (!$lists->valid()) { return $event; } $lists->top(); while ($lists->valid()) { try { call_user_func($lists->current(), $event); } catch (\Throwable $exception) { $this->logger->error($exception->getMessage(), [$exception]); } if ($event instanceof StoppableEventInterface && $event->isPropagationStopped()) { break; } $lists->next(); } return $event; } }