public function calculateAllDataWithGroupFilters(ClientSurvey $client_survey, GetComparativeReportByYear $request, string $locale): array 	{ 		$data = []; 		$all_enps_data = []; 		$all_matrix_data = []; 		$all_engagement_data = []; 		$question_available_answers = [];  		// get selected locations & departments 		$location_ids = $request->comparative_survey_by_year_filters[$client_survey->getKey()]['comparative_locations'] ?? []; 		$department_ids = $request->comparative_survey_by_year_filters[$client_survey->getKey()]['comparative_departments'] ?? [];  		// get question id, selected values & question available_answers for locale 		$comparable_group_exists = $this->checkIfComparableGroupAnswersExists($client_survey, $request, $locale); 		$group_question_id = $comparable_group_exists['question_id']; 		$question = Question::where('id', $group_question_id)->first();  		$question_data = $request->comparative_survey_by_year_filters[$client_survey->getKey()]['comparative_filter_values'] ?? null; 		$question_filter_values = $question_data[$group_question_id] ?? null; // selected question answers (numbers)  		if ($question?->type) { 			$question_available_answers = $question->type == QuestionType::StandardRadio->value ? $this->getTranslationForStandardQuestion($locale) : $question->getTranslation('available_answers', $locale); 		}  		if ($comparable_group_exists['question_group_answers_exists']) { 			$comparativeQuestionGroupService = new ComparativeQuestionGroupService($this->comparativePdfService, $this->comparativeDataObject, $this, $client_survey, $request, $all_matrix_data, $all_enps_data, $all_engagement_data, $location_ids, $department_ids, $question_available_answers, $question_filter_values, $group_question_id, $locale); 			$data = $comparativeQuestionGroupService->getAllDataIfGroupQuestionIsSelected();  			$this->prepareComparativeDataObjectWithEngagementEnps($data['all_engagement_data'], $data['all_enps_data'], $data['all_esi_data']); 		}  		if ($comparable_group_exists['location_group_answers_exists']) { 			$comparativeLocationGroupService = new ComparativeLocationGroupService($this->comparativePdfService, $this->comparativeDataObject, $this, $client_survey, $request, $all_matrix_data, $all_enps_data, $all_engagement_data, $location_ids, $department_ids, $locale, $question_available_answers, $question_filter_values, $group_question_id); 			$data = $comparativeLocationGroupService->getAllDataIfGroupLocationIsSelected();  			$this->prepareComparativeDataObjectWithEngagementEnps($data['all_engagement_data'], $data['all_enps_data'], $data['all_esi_data']); 		}  		if ($comparable_group_exists['department_group_answers_exists']) { 			$comparativeDepartmentGroupService = new ComparativeDepartmentGroupService($this->comparativePdfService, $this->comparativeDataObject, $this, $client_survey, $request, $all_matrix_data, $all_enps_data, $all_engagement_data, $location_ids, $department_ids, $locale, $question_available_answers, $question_filter_values, $group_question_id); 			$data = $comparativeDepartmentGroupService->getAllDataIfGroupDepartmentIsSelected();  			$this->prepareComparativeDataObjectWithEngagementEnps($data['all_engagement_data'], $data['all_enps_data'], $data['all_esi_data']); 		}  		return $data['all_matrix_data'] ?? []; 	}