Привет как мне в этот код добавить  принудительное завершение квеста

    public class StartQuestState : IPayloadState<IQuest>
    {
        private readonly SessionQuestStateMachine stateMachine;
        private readonly PlayerContainer playerContainer;
        private readonly CarPathChecking carPathChecking;
        private readonly FatalFailureConditionHandler fatalFailureConditionHandler;
        private readonly CompletionConditionHandler completionConditionHandler;
        private readonly FailureConditionHandler failureConditionHandler;

        private IQuest quest;

        [Inject]
        private IPublisher publisher;
        [Inject]
        private StatisticsProvider statisticsProvider;
        [Inject]
        private User user;
        public StartQuestState(
            SessionQuestStateMachine stateMachine,
            PlayerContainer playerContainer,
            CarPathChecking carPathChecking,
            FatalFailureConditionHandler fatalFailureConditionHandler,
            CompletionConditionHandler completionConditionHandler,
            FailureConditionHandler failureConditionHandler)
        {
            this.stateMachine = stateMachine;
            this.playerContainer = playerContainer;
            this.carPathChecking = carPathChecking;
            this.fatalFailureConditionHandler = fatalFailureConditionHandler;
            this.completionConditionHandler = completionConditionHandler;
            this.failureConditionHandler = failureConditionHandler;
        }
        
        public void Enter(IQuest quest)
        {
            SessionResultsPuller.SetQuestResult(statisticsProvider, user, QuestResultType.InProgress);
            Debug.Log($"Старт квеста");
            if (quest.IsTrackingPathEnabled)
            {
                carPathChecking.AnErrorHasOccurred += CompleteQuestWithFailure;
                carPathChecking.StartTracking(quest.GetPathPoints(), playerContainer.PlayerCarFacade.transform);
            }
            this.quest = quest;

            fatalFailureConditionHandler.Start(quest.GetConditions().FatalQuestFailureConditions, CompleteQuestWithFailure);
            failureConditionHandler.Start(quest.GetConditions().QuestFailureConditions, CompleteQuestWithFailure);
            completionConditionHandler.Start(quest.GetConditions().QuestCompletionConditions, CompleteQuestWithSuccess);
        }

        private void CompleteQuestWithFailure()
        {
            SessionResultsPuller.SetQuestResult(statisticsProvider, user, QuestResultType.Failed);
            Debug.Log($"Квест завершен неудачей");
            publisher.Publish(new QuestWithFailureMessage());
            stateMachine.Enter<OutputOfQuestResultsState, IQuest>(quest);
        }
        
        private void CompleteQuestWithSuccess()
        {
            SessionResultsPuller.SetQuestResult(statisticsProvider, user, QuestResultType.Completed);
            Debug.Log($"Квест завершен удачно");
            publisher.Publish(new QuestWithSuccessMessage());
            stateMachine.Enter<OutputOfQuestResultsState, IQuest>(quest);
        }

        public void Exit()
        {
            fatalFailureConditionHandler.Stop();
            completionConditionHandler.Stop();
            failureConditionHandler.Stop();
            
            carPathChecking.Stop();
            carPathChecking.AnErrorHasOccurred -= CompleteQuestWithFailure;
        }
    }