startOfMinute(); $this->logFlightActions('flight_departing', UserFlight::where('departure_date', $time)->get()); $this->logFlightActions('flight_arriving', UserFlight::where('arrival_date', $time)->get()); } /** * @param string $type * @param Collection $flights * @return void */ private function logFlightActions(string $type, Collection $flights): void { foreach ($flights as $flight) { UserAction::create([ 'user_id' => $flight->user_id, 'type' => $type, 'data' => [ 'flight' => $flight->snapshot($flight->id), ] ]); if($type === 'flight_departing'){ $flight->user->calculateAchievements(); } } } }