where('status', BookingStatus::Confirmed->value) ->whereHas('schedule', fn($q) => $q->whereDate('scheduled_date', '<', now()->toDateString())) ->get(); $count = 0; foreach ($bookings as $booking) { $booking->update(['status' => BookingStatus::Completed]); $count++; try { $booking->member->notify(new BookingCompletedNotification($booking)); } catch (\Throwable $e) { Log::error("BookingCompletedNotification failed for booking #{$booking->id}: " . $e->getMessage()); } } Log::info("CompleteFinishedBookings: {$count} completed"); $this->info("CompleteFinishedBookings: {$count} bookings completed."); } }