request = $request; $this->eventManager = $eventManager; $this->actionFactory = $actionFactory; $this->metadataFactory = $metadataFactory; } public function beforeDelete(UserResource $subject, AbstractModel $user) { $metadata = $this->metadataFactory->create([ 'request' => $this->request, 'eventName' => MetadataInterface::EVENT_DELETE, 'loggingObject' => $user ]); $actionHandler = $this->actionFactory->create($metadata); $actionHandler->execute(); } public function afterDelete(UserResource $subject, $result, AbstractModel $user) { if ($result) { $this->eventManager->dispatch('model_delete_after', ['object' => $user]); } } }