typeResolver = $typeResolver; $this->extensionPool = $extensionPool; } /** * @param object $entity * @param array $arguments * @return object */ public function execute($entity, $arguments = []) { $entityType = $this->typeResolver->resolve($entity); $actions = $this->extensionPool->getActions($entityType, 'create'); foreach ($actions as $action) { $entity = $action->execute($entity, $arguments); } return $entity; } }