title: Polymorphic Relationships and same name model and morphTo function
body: <p>So I am trying to create a <code>taggable</code> table which enables multiple <code>models</code> to have tags associated with them and felt that Laravel's <a href="http://four.laravel.com/docs/eloquent#polymorphic-relations" rel="nofollow">Polymorphic relationships</a> would be the way to go.</p>
  
  <p>Unfortunately I can't seem to get them working in the following setup. As I receive the following error when running <code>php artisan migrate:refresh --seed</code>.</p>
  
  <pre><code>{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class name must be a valid object or a string","file":"...\\vendor\\laravel\\framework\\src\\
  Illuminate\\Database\\Eloquent\\Model.php","line":527}}
  </code></pre>
  
  <p>I believe the issue is due to the fact that the <code>Taggable</code> model has the same <code>morphTo</code> named as outlined below. Since changing this fixes the issue. Why does this cause a problem?</p>
  
  <p><strong>Taggable model</strong></p>
  
  <pre><code>class Taggable extends Eloquent {
  
      protected $table = 'taggable';
  
      public function taggable()
      {
          return $this-&gt;morphTo();
      }
  }
  </code></pre>
  
  <p><strong>Track model</strong></p>
  
  <pre><code>class Track extends Eloquent {
  
      protected $table = 'tracks';
  
      protected $fillable = array('title', 'year', 'image');
  
      protected $guarded = array('id');
  
      public function playlists()
      {
          return $this-&gt;belongsToMany('Playlist');
      }
  
      public function tags()
      {
          return $this-&gt;morphMany('Taggable', 'taggable');
      }
  }
  </code></pre>
  
  <p><strong>Tag model</strong></p>
  
  <pre><code>class Tag extends Eloquent {
  
      protected $table = 'tags';
  
      protected $fillable = array('title', 'description');
  
      protected $guarded = array('id');
  }
  </code></pre>
  
  <p><strong>Migration</strong></p>
  
  <pre><code>Schema::create('taggable', function(Blueprint $table)
  {
    $table-&gt;increments('id');
    $table-&gt;integer('taggable_id');
    $table-&gt;string('taggable_type');
    $table-&gt;integer('tag_id');
    $table-&gt;timestamps();
  });
  </code></pre>
  
  <p><strong>DatabaseSeeder Snippit</strong></p>
  
  <pre><code>...
  
  DB::table('taggable')-&gt;delete();
  
  $track1 = Track::find(1);
  
  $idm = Tag::find(1);
  
  $track1-&gt;tags()-&gt;create(array('tag_id' =&gt; $idm-&gt;id));
  
  ...
  </code></pre>
  
  <p>Any help would be much appreciated on this matter.</p>