protected function advanceOneState($isManualRequest)
	{
		if (!$this->hasNextState()) return false;
		$nextCfg = $this->getStateConfig($this->getNextState());

		//check preconditions
		if (!$this->meetsStatePreconditions($nextCfg['value'])) return false;

		//check auto entering
		if (!$isManualRequest) {
			$ae = $nextCfg['autoEnter'];
			$resAe = $ae instanceof \Closure ? call_user_func($ae, $this->owner, $nextCfg) : $ae;
			if (!$resAe) return false;
		}

		$this->owner->{$this->stateAttribute} = $nextCfg['value'];

		return true;
	}