public function getEsiForTopThreeClientSurveys(Collection $client_surveys): EsiDataObject 	{ 		$companies_ranked = [];  		$benchmarkReportService = new BenchmarkReportService;  		/** @var ClientSurvey $client_survey 		 */ 		foreach ($client_surveys as $client_survey) { 			$categories_data = $benchmarkReportService->calculateClientSurveyFinalGrade($client_survey); 			$score = count($categories_data) ? number_format(array_sum(array_column($categories_data, 'score')) / count($categories_data), 3) : null;  			$companies_ranked[] = [ 				'total_grade' => $score, 				'survey_applicants' => $client_survey->getApplicants(), 			]; 		}  		$companies_ranked = collect($companies_ranked)->sortBy(function ($item) { 			return $item['total_grade']; 		}, SORT_REGULAR, true)->take(3);  		$applicants = new Collection;  		foreach ($companies_ranked as $company) { 			foreach ($company['survey_applicants'] as $applicant) { 				$applicants->push($applicant); 			} 		}  		return $this->esiService->generate($applicants); 	}