@zakiaziz now that I'm on a computer and not my phone, the method signature of morphToMany is as follows:
public function morphToMany($related, $name, $table = null, $foreignKey = null, $otherKey = null, $inverse = false)
If you take a look at Illuminate\Database\Eloquent\Model::morphToMany, you can see how this relationship is built up and why it expects a certain convention:
$table is derived as the plural of $name - twordables
$foreignKey is derived as $name.'_id- twordable_id
$otherKey is derived from (new $name)->getForeignKey(), which is the snake-cased class name with _id appended - two_word_id
So in your instance, you would (I'm pretty sure) need something along the following lines:
public function twowords()
{
return $this->morphToMany(
// the related model
'App\TwoWords',
// the relationship name
'twowordable',
// the table name, which would otherwise be derived from the relationship name - twowordables
'twordable',
// the foreign key will be twowordable_id, derived from the relationship name, which you're adhering to
null,
// the 'other' key, which would otherwise be derived from the related model's snake case name - two_word_id
'twoword_id'
);
}