$changes */ public function format(EventDate $eventDate, Collection $changes): ?string { $messages = collect(); if ($eventDate->suspended_at !== null) { $messages->push('Esta fecha fue cancelada.'); } $sourceDates = $changes ->where('change_type', EventDateChangeType::Rescheduled) ->where('destination_event_date_id', $eventDate->getKey()) ->pluck('previous_date') ->filter() ->map(fn ($date): string => $date->format('d/m/Y')) ->unique() ->values(); if ($sourceDates->isNotEmpty()) { $verb = $sourceDates->count() === 1 ? 'se reprogramó' : 'se reprogramaron'; $messages->push("{$sourceDates->join(', ', ' y ')} {$verb} para este día."); } return $messages->isEmpty() ? null : $messages->join(' '); } }