title: Many to Many relationship works one way
body: <p>I have a <code>User</code> and a <code>Quiz</code> models. I have many-to-many relationship defined between them in the following way:</p>
  
  <p><strong>User model</strong></p>
  
  <pre><code>public function subscriptions()
  {
      return $this-&gt;belongsToMany(Quiz::class, 'subs_users', 'user_id', 'quiz_id')-&gt;withTimestamps()-&gt;withPivot('accepted');
  }
  </code></pre>
  
  <p><strong>Quiz model</strong></p>
  
  <pre><code>public function subscribers()
  {
      return $this-&gt;belongsToMany(User::class);
  }
  </code></pre>
  
  <p><strong>Pivot table</strong> </p>
  
  <pre><code>Schema::create('subs_users', function (Blueprint $table) {
      $table-&gt;integer('user_id')-&gt;unsigned();
      $table-&gt;integer('quiz_id')-&gt;unsigned();
  
      $table-&gt;foreign('user_id')-&gt;references('id')-&gt;on('users')-&gt;onDelete('cascade');
      $table-&gt;foreign('quiz_id')-&gt;references('id')-&gt;on('quizzes')-&gt;onDelete('cascade');
  
      $table-&gt;primary(['user_id', 'quiz_id']);
  
      $table-&gt;boolean('accepted')-&gt;index();
  
      $table-&gt;timestamps();
  });
  </code></pre>
  
  <p>When I call <code>$quiz-&gt;subscribers</code>, it returns a collection of users as expected. However, <code>$user-&gt;subscriptions</code> <strong>always returns an empty array</strong>. Why is that?</p>
  
  <hr>
  
  <h2>Edit</h2>
  
  <p>It seems, that replacing this line in <code>Quiz</code></p>
  
  <pre><code>return $this-&gt;belongsToMany(User::class);
  </code></pre>
  
  <p>with </p>
  
  <pre><code>return $this-&gt;belongsToMany(User::class, 'subs_users', 'quiz_id', 'user_id')-&gt;withTimestamps()-&gt;withPivot('accepted');
  </code></pre>
  
  <p>Solves the issue, but I still can't understand why the first variant does not work.</p>