/** * Handles onStateWasSet event * Returns true if there was state change * * @param StateInterface $state * @param PayloadInterface $payload * * @return StateInterface|null */ private function handleOnStateWasSet(StateInterface $state, PayloadInterface $payload) { while ($state->hasEvent(self::ON_STATE_WAS_SET)) { $newState = $state->triggerEvent(self::ON_STATE_WAS_SET, $payload); if ($newState === null) { break; } $state = $this->getState($newState); $this->updatePayload($state, $payload); } }