/**
  * @param object|IsEventSourced $aggregateRoot
  *
  * @return array
  */
 private function getWriteableEventsFromAggregate($aggregateRoot)
 {
     $domainEvents = $aggregateRoot->extractRecordedEvents();
     $eventsArray = [];
     foreach ($domainEvents as $event) {
         $metadata = [];
         if ($this->metadataStore) {
             $metadata = $this->metadataStore->metadata($event);
         }
         $eventsArray[] = WritableEvent::newInstance(get_class($event), $this->eventSerializer->serialize($event), $metadata);
     }
     return $eventsArray;
 }