public function generateColumnTitle(ClientSurvey $client_survey, array $matrix_element, GetComparativeReportByYear $request, string $locale): string 	{ 		$comparative_filter_values = $request->comparative_survey_by_year_filters[$client_survey->getKey()]['comparative_filter_values'] ?? null; 		$questions = Question::whereIn('id', $matrix_element['question_ids'])->get(); 		$title = '';  		foreach ($questions as $key => $question) { 			if ($question->type == QuestionType::Checkbox->value || $question->type == QuestionType::CustomRadio->value) { 				$question_filter_values = $comparative_filter_values[$question->getKey()];  				$question_available_answers = $question->getTranslation('available_answers', $locale);  				foreach ($question_filter_values as $filter_value_key => $filter_value) { 					$question_filter_value_index = (int) $filter_value - 1;  					if (($key + 1) == count($matrix_element['question_ids']) && ($filter_value_key + 1) != count($question_filter_values)) { 						$title .= $question_available_answers[$question_filter_value_index]; 					} elseif (count($matrix_element['locations']) || $matrix_element['departments']) { 						$title .= $question_available_answers[$question_filter_value_index] . ', '; 					} else { 						$title .= ', ' . $question_available_answers[$question_filter_value_index]; 					} 				} 			} 		}  		foreach ($matrix_element['locations'] as $key => $location) { 			$title .= ($key != array_key_last($matrix_element['locations'])) ? $location : $location . ', '; 		}  		foreach ($matrix_element['departments'] as $key => $department) { 			$title .= ($key != array_key_last($matrix_element['departments'])) ? $department . ', ' : $department; 		}  		return $title; 	}