Не уверен, что полностью понимаю ваш вопрос, но постараюсь!
Также этот пост действительно поможет вам понять проблему, с которой вы столкнулись, я думаю,
Laravel morph Relations
Использование кода из поста, который я связал, но взятие ваших таблиц привело бы к определению моделей, подобных этой.
Модель пользователя
class User extends Model
{
public function fights()
{
return $this->hasMany('App\Fight');
}
}
Модель боя
class Fight extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
public function fightable()
{
return $this->morphTo();
}
}
Модель монстра
class Monster extends Model
{
public function fight()
{
return $this->morphOne('App\Fight', 'fightable');
}
}
Если вы все еще чувствуете, что это не ответило на ваш вопрос или вам нужна дополнительная помощь, просто дайте мне знать!