5.4 removed the string-based model events fired through the event dispatcher — eloquent.saved: AppOrder and its relatives — in favour of an $dispatchesEvents map to real classes.
// gone in 5.4
Event::listen('eloquent.saved: AppOrder', function ($order) { /* ... */ });
// the replacement
class Order extends Model
{
protected $dispatchesEvents = [
'saved' => OrderSaved::class,
];
}
The listeners do not error when they stop firing, which is the migration hazard — a search index that quietly stops updating looks like a data problem rather than an upgrade problem. Grep for eloquent. across the codebase before upgrading. Observers were unaffected and are the better home for this anyway, since they keep the wiring in one class rather than scattered across service providers.