public static function updateIterinary($token) { $iterinary = self::getUserCurrentIterinary($token); $distance = 0; $duration = 0; $price = 0; $activities = $iterinary->activities; foreach ($activities as $activity) { $start_time = Carbon::parse($activity->start_time); $end_time = Carbon::parse($activity->end_time); $distance += GeolocationHelper::resolveDistance($activity); $duration += $end_time->diffInMinutes($start_time); $price += $activity->typable->price; } $iterinary->distance = $distance; $iterinary->duration = $duration; $iterinary->price = $price; $iterinary->save(); }