// We prefer to return transitions blocker by something else than
// marking. Because it means the marking was OK. Transitions are
// deterministic: it's not possible to have many transitions enabled
// at the same time that match the same marking with the same name
if (!
$transitionBlockerList->
has(TransitionBlocker::BLOCKED_BY_MARKING
)) { return $transitionBlockerList;
} } if (!
$transitionBlockerList) { throw new UndefinedTransitionException($subject,
$transitionName,
$this);
} return $transitionBlockerList;
} public function apply(object
$subject, string
$transitionName, array
$context =
[]): Marking
{ $marking =
$this->
getMarking($subject,
$context);
$transitionExist = false;
$approvedTransitions =
[];