title: Laravel detach in event not working
body: <p>I am deleting a filter which model looks like this:</p>
  
  <pre><code>namespace App;
  
  use App\Events\FilterDelete;
  use Illuminate\Database\Eloquent\Model;
  
  class Filter extends Model
  {
      protected $events = [
          'deleting' =&gt; FilterDelete::class
      ];
  
      public function filterGroup()
      {
          return $this-&gt;belongsTo('App\FilterGroup');
      }
  
      public function products()
      {
          return $this-&gt;belongsToMany('App\Product', 'product_filters')-&gt;withPivot('id', 'quantity', 'price');
      }
  }
  </code></pre>
  
  <p>The FilterDelete looks like this:</p>
  
  <pre><code>namespace App\Events;
  
  use App\Filter;
  use Illuminate\Broadcasting\Channel;
  use Illuminate\Broadcasting\InteractsWithSockets;
  use Illuminate\Broadcasting\PresenceChannel;
  use Illuminate\Broadcasting\PrivateChannel;
  use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
  use Illuminate\Foundation\Events\Dispatchable;
  use Illuminate\Queue\SerializesModels;
  
  class FilterDelete
  {
      use Dispatchable, InteractsWithSockets, SerializesModels;
  
      public $filter;
  
      /**
       * Create a new event instance.
       *
       * @return void
       */
      public function __construct(Filter $filter)
      {
          $this-&gt;filter = $filter;
      }
  
      /**
       * Get the channels the event should broadcast on.
       *
       * @return \Illuminate\Broadcasting\Channel|array
       */
      public function broadcastOn()
      {
          return new PrivateChannel('channel-name');
      }
  }
  </code></pre>
  
  <p>And the listener looks like this:</p>
  
  <pre><code>namespace App\Listeners;
  
  use App\Events\FilterDelete;
  use Illuminate\Queue\InteractsWithQueue;
  use Illuminate\Contracts\Queue\ShouldQueue;
  
  class DeleteProductFilter
  {
      /**
       * Create the event listener.
       *
       * @return void
       */
      public function __construct()
      {
          //
      }
  
      /**
       * Handle the event.
       *
       * @param  FilterDelete  $event
       * @return void
       */
      public function handle(FilterDelete $event)
      {
          $event-&gt;filter-&gt;products()-&gt;detach();
      }
  }
  </code></pre>
  
  <p>And when I delete a filter the products are not detached and the records stay in the database. No errors are returned, evetywhing seems to be working fine. Can anyone tell me why the products are not detaching ?</p>