public function update(Project $project) { $this->transaction->requestTransaction(); try { $project->update($this->conn); if ($project->isPendingArchivization()) { $this->eventDispatcher->dispatch(CantigaEvents::PROJECT_ARCHIVIZED, new ProjectArchivizedEvent($project)); } } catch (\Exception $exception) { $this->transaction->requestRollback(); throw $exception; } }