ObservedBy

Register model observer(s)

Description: Registers one or more observer classes for the Eloquent model.

Namespace: Illuminate\Database\Eloquent\Attributes\ObservedBy

Added in: Laravel 10.44

Usage

use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Model;
use App\Observers\UserObserver;

// Before:
protected static function booted(): void
{
    static::observe(UserObserver::class);
}

use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Model;
use App\Observers\UserObserver;

// After:
#[ObservedBy([UserObserver::class])]
class User extends Model
{
    //
}

// App\Observers\UserObserver
class UserObserver
{
    public function created(User $user): void
    {
        // Send welcome email...
    }

    public function deleted(User $user): void
    {
        // Clean up related data...
    }
}