// Event
class UserRegistered {
public function __construct(public User $user) {}
}
// Listener
class SendWelcomeEmail {
public function handle(UserRegistered $event): void {
Mail::to($event->user)->send(new WelcomeMail());
}
}
// Регистрация (EventServiceProvider или атрибуты)
Event::listen(UserRegistered::class, SendWelcomeEmail::class);
// Dispatch
event(new UserRegistered($user));
UserRegistered::dispatch($user);Events обеспечивают слабую связанность - код, создающий событие, не знает о слушателях.