fetchesHelpMenuUserAnswerSelected = $fetchesHelpMenuUserAnswerSelected; $this->fetchesHelpMenuUserAnswerSelectedList = $fetchesHelpMenuUserAnswerSelectedList; } public function execute($userId, $questionId, $request){ if ($request->has('isPrevious')) { //Get current and previous question's answer try{ $selectedAnswer = $this->fetchesHelpMenuUserAnswerSelectedList->execute(['user_id' => $userId, 'question_id' => $questionId, 'order_by' => (object)['column' => 'id','DESC' => true]])[0]; } catch (\Exception $exception){ $selectedAnswer = null; } if($selectedAnswer) { $this->fetchesHelpMenuUserAnswerSelected->execute(['id' => $selectedAnswer['id']])->delete(); } } else{ //Delete all answer's belongs to the user $currentQuestion = $request->question; $isStart = $currentQuestion['is_start']; if($isStart){ QAUserAnswerSelected::where('user_id', $userId)->delete(); } } } }