title: Belongs to many get all rows (Laravel)
body: <p>I have a User model and a Property model. The user has 3 roles: admin, manager, and broker. The admins can view all properties, while the managers and brokers can only view the properties that are assigned to them. A manager or broker may have many properties and a property may belong to any number of managers and brokers. Here is the <code>properties</code> relationship in my User model:</p>
  
  <pre><code>/**
   * Get all properties belonging to this user.
   *
   * @return [type]            [description]
   */
  public function properties()
  {
      if ($this-&gt;isAdmin()) {
          return Property::all();
  
      } elseif ($this-&gt;isManager() || $this-&gt;isBroker()) {
          return $this-&gt;belongsToMany('App\Property');
  
      }
  
      return null;
  }
  </code></pre>
  
  <p>This works great for retrieving all properties, but if I have to perform select or where statements, I can only do so if the user is <strong>not</strong> an admin, since the current code returns the entire Collection if the user is an admin. This makes it impossible to use this method for search functionality and any type of constraint.</p>
  
  <p>Obviously, I do not want to create a record in the <code>property_user</code> table for every single property and admin, as that would take up loads of unnecessary space. However, I do not want to have additional logic in my controllers to only call the <code>properties</code> method if the user is a manager or broker, and perform a custom query if the user is an admin. </p>
  
  <p>Is there any way I can return an <code>Illuminate\Database\Eloquent\Relations\BelongsToMany</code> that has every row in it? Or another Laravel object that I can still chain queries to?</p>