public function checkAndAdvanceState($runValidation=true)
	{
		$transaction = Yii::$app->db->beginTransaction();

		while ($this->hasNextState()) {
			if ($this->advanceOneState(false)) {
				if (!$this->saveStateAttribute($runValidation)) {
					$transaction->rollBack();
					return false;
				}
			} else {
				break;
			}
		}

		$transaction->commit();
		return true;
	}