public function exportGeneralReportExcel(): BinaryFileResponse 	{ 		$this->client_survey->loadCount([ 			'applicants as completed_survey_count' => function ($query) { 				$query->where('filled', true); 			}, 			'applicants as total_survey_count', 		])->load([ 			'survey.questions', 			'survey.categories', 			'demographicQuestions', 			'extraQuestions', 			'applicants' => function ($query) { 				$query->with('latestMetadata')->available()->final()->orderBy('is_offline'); 			}, 		]);  		$applicants = $this->client_survey->applicants;  		if ($applicants->isEmpty()) { 			throw new ReportGenerationException( 				(string) __('client-surveys.validation.not-enough-surveys'), 				422 			); 		}  		$basic_questions = $this->client_survey->survey->questions()->comparableTypes()->get(); 		$demographic_questions = $this->client_survey->demographicQuestions()->comparableTypes()->get(); 		$additional_questions = $this->client_survey->extraQuestions()->comparableTypes()->get(); 		$categories = $this->client_survey->survey->categories->load([ 			'questions', 		]);  		$this->loadApplicantsWithDto( 			$applicants, 			$basic_questions, 			$demographic_questions, 			$additional_questions, 			$categories, 		);  		return Excel::download(new GeneralReportExcel( 			$this->client_survey, 			$applicants, 			$this->locale, 			$basic_questions, 			$demographic_questions, 			$additional_questions, 			$categories, 		), $this->client_survey->generateDownloadFileNameForGeneralExcelReport($this->locale)); 	}