public function one_year_report($start_date, $end_date) { $year = (int) substr($start_date, 0, 4) + 1; $courses_ids = []; $number_of_trainee = 0; $trainings = Training::whereBetween('start_date', [$start_date, $end_date])->get(); $number_of_trainings = $trainings->count(); foreach ($trainings as $training) { $courses = $this->course_by_training_id($training->id); $number_of_trainee += $this->number_of_trainee_by_training_id($training->id); foreach ($courses as $course) { $courses_ids[] = $course->id; } } $number_of_courses = count($courses_ids); $data = ['year' => $year, 'number_of_trainings' => $number_of_trainings, 'number_of_courses' => $number_of_courses, 'number_of_trainee' => $number_of_trainee]; return $data; }