public function changeState(EdkMessage $item, User $currentUser, $additionalPermission, $newStatus) { $this->transaction->requestTransaction(); try { $item->performTransition($currentUser, $additionalPermission, $newStatus); $item->changeState($this->conn); } catch (Exception $ex) { $this->transaction->requestRollback(); throw $ex; } }