public function generate(Reportable $survey, string $locale, array $extras = []): BaInternalReportDataObject 	{ 		$applicants = $survey->getApplicants(); 		$applicantIds = $applicants->pluck('id')->all();  		$this->baSurvey = $applicants->first()->survey()->with([ 			'survey.questions.answers' => function ($query) use ($applicantIds) { 				$query->whereIn('applicant_id', $applicantIds)->with('question'); 			}, 			'brandAwarenessExtraQuestions.answers' => function ($query) use ($applicantIds) { 				$query->whereIn('applicant_id', $applicantIds)->with('question'); 			}, 			'applicants' => function ($query) use ($applicantIds) { 				$query->whereIn('id', $applicantIds); 			}, 		])->firstOrFail();  		$exportBaInternalReportService = new ExportBaInternalReportService($this->baSurvey, $locale);  		$this->setShowAllGraphs($applicants);  		$this->setUpEnps($survey);  		$this->setUpEnpsCountByAnswerValue($survey, $applicants);  		$this->setCompanyPositivityQuestion($applicants, $locale, $exportBaInternalReportService);  		$this->setUpApplicantPositivityInRegardsToCompanyView($locale);  		$this->setUpApplicantPerceptionQuestionGroups($applicants, $exportBaInternalReportService);  		$this->setUpApplicantPerceptionQuestionAveragesForAllEmployeeTypes($applicants, $exportBaInternalReportService);  		return $this->baInternalReportDataObject; 	}