title: Laravel delete all belongsToMany relations in belongsToMany relation
body: <p>I have a Tournament model which contains a belongsToMany relationship with a Session model:</p>
  
  <pre><code>class Tournament extends Model{
  
      public function sessions(){
          return $this-&gt;belongsToMany(Session::class, 'tournament_has_sessions');
      }
  }
  </code></pre>
  
  <p>Then my sessions model contains a belongsToMany relationship with the User model:</p>
  
  <pre><code>class Session extends Model{
  
      public function users(){
          return $this-&gt;belongsToMany(User::class, 'session_has_users');
      }
  
  }
  </code></pre>
  
  <p>Now when I delete a Tournament, I want to delete all sessions and all information in the session_has_users table with it.</p>
  
  <p>I have tried: </p>
  
  <pre><code>$tournament-&gt;sessions()-&gt;with('users')-&gt;delete(); -- &lt; This
  $tournament-&gt;sessions()-&gt;delete();
  $tournament-&gt;users()-&gt;detach();
  $tournament-&gt;delete();
  </code></pre>
  
  <p>But it does't work. The data in the session_has_users table persists</p>
  
  <p>I realize i could do something like this:</p>
  
  <pre><code>DB::table('session_has_users')-&gt;whereIn('session_id', $this-&gt;sessions()-&gt;pluck('id'))-&gt;delete();
  </code></pre>
  
  <p>But is there a more efficient/handy (or even alternative if not more efficient) way to accomplish this?</p>