private function persistNewEvents(ProductReturn $return) { $createStoredEvent = function ($event, $eventNumber) use($return) { return new StoredEvent($return->getAggregateId(), $eventNumber, $event); }; $eventsToStore = array_map($createStoredEvent, $return->getNewEvents(), $this->getNewEventNumbers($return)); array_walk($eventsToStore, [$this->registry->getManager(), 'persist']); $this->registry->getManager()->flush(); }