Mute and unmute Laravel observers at will.

v5.2.0 2023-03-06 15:30 UTC

This package is auto-updated.

Last update: 2023-05-14 08:54:27 UTC


Lint and Test Status Quality Score Coverage Latest Stable Version License

About Unobserve

When testing Laravel applications, we frequently need to "silence" events, so as not to trigger additional side-effects. Laravel's Event::fake method is useful, but muting a specific model observer is still problematic.

Unobserve takes care of that, making it easy to mute and unmute an observer at will.

Requirements and installation

Select the appropriate branch for your version of Laravel.

Branch Laravel Versions PHP Version
1.x ^5.8, ^6.0 ^7.2
2.x ^7.0 ^7.2.5
3.x ^8.0 ^7.3.0
4.x ^8.0 ^8.0.0
5.x ^9.0, ^10.0 ^8.0.0

Install Unobserve using Composer:

composer require monooso/unobserve


First, add the CanMute trait to your observer class.


namespace App\Observers;

use Monooso\Unobserve\CanMute;

class UserObserver
    use CanMute;

You can now mute and unmute your observer as needed:


Mute options

Mute all observer events:


Mute specific observer events:

UserObserver::mute(['creating', 'created']);


Unobserve is open source software, released under the MIT license.