public function submitAnswers(Domain $domain, SubmitAnswersPpi $request, ClientSurveyPpiService $clientSurveyPpiService): JsonResponse 	{ 		$ppi_survey = $clientSurveyPpiService->getPpiClientSurvey($request->validated()); 		$brand_awareness_survey = $clientSurveyPpiService->getBaClientSurvey($request->validated());  		if ((new ApplicantPpiService)->isInFillablePeriod($ppi_survey)) { 			abort(403, (string) __('applicant-surveys.answer-validation-ppi.not-in-fillable-period')); 		}  		if ((new ApplicantPpiService)->isOnCorrectDomain($ppi_survey, $domain)) { 			abort(403, (string) __('applicant-surveys.answer-validation-ppi.wrong-domain')); 		}  		if ((new ApplicantBaService)->isInFillablePeriod($brand_awareness_survey)) { 			abort(403, (string) __('applicant-surveys.answer-validation-ba.not-in-fillable-period')); 		}  		if ((new ApplicantBaService)->isOnCorrectDomain($brand_awareness_survey, $domain)) { 			abort(403, (string) __('applicant-surveys.answer-validation-ba.wrong-domain')); 		}  		$cleaned_answers = $clientSurveyPpiService->cleanAnswers($ppi_survey, $brand_awareness_survey, $request);  		$email_id = $ppi_survey->survey->questions()->email()->first()?->id;  		$applicant_email = isset($email_id) ? $cleaned_answers->get('ppi_answers')->get($email_id) : null;  		if ((new ApplicantBaService)->hasDuplicateEmailQuestionEntry($ppi_survey, $cleaned_answers, $applicant_email)) { 			abort(403, (string) __('applicant-surveys.answer-validation-ppi.duplicate-email')); 		}  		$request = $request->collect() 			->put('ip', $request->ip()) 			->put('has_sufficient_info_for_ba_survey', $request->boolean('has_sufficient_info_for_ba_survey'));  		HandlePpiAndBaAnsweredSurveyCreation::dispatch( 			$domain, 			$ppi_survey, 			$cleaned_answers, 			$request, 			$clientSurveyPpiService, 			$brand_awareness_survey, 			$applicant_email 		);  		return response()->json([ 			'data' => [ 				'status' => true, 			], 		]); 	}