LaravelのEloquentの命名規則に従っていない多対多テーブル（中間テーブル）の際、モデルの関数名はテーブルの列名と重複しないよう注意が必要です

[要旨]
LaravelのEloquentの命名規則に従っていない多対多テーブル（中間テーブル）の際、モデルの関数名はテーブルの列名と重複しないよう注意が必要です。

[詳細]
ゲームの情報を格納するgamelistテーブル、クリエイターさんの情報を格納するcreaterlistテーブル、ゲームとクリエイターさんの情報を関連付けるshokushuテーブルの定義が以下のようになっていたとします。
```
# \d shokushu
                                                 Table "public.shokushu"
       Column        |            Type             | Collation | Nullable |                   Default
---------------------+-----------------------------+-----------+----------+----------------------------------------------
 id                  | integer                     |           | not null | nextval('"shokushu_id_seq"'::text::regclass)
 game                | integer                     |           | not null |
 creater             | integer                     |           | not null |
 shubetu             | integer                     |           | not null |
 shubetu_detail      | integer                     |           |          |
 shubetu_detail_name | text                        |           |          |

Foreign-key constraints:
    "shokushu_creater_fkey" FOREIGN KEY (creater) REFERENCES createrlist(id)
    "shokushu_game_fkey" FOREIGN KEY (game) REFERENCES gamelist(id)
```
```
 # \d gamelist
                                                            Table "public.gamelist"
      Column      |      Type       | Collation | Nullable |                      Default

------------------+-----------------+-----------+----------+----------------------------------------------------
 id               | integer         |           | not null | nextval('gamelist_id_seq'::text::regclass)
 gamename         | text            |           | not null |
```
```
# \d createrlist
                                      Table "public.createrlist"
       Column       |  Type   | Collation | Nullable |                     Default
--------------------+---------+-----------+----------+-------------------------------------------------
 id                 | integer |           | not null | nextval('"createrlist_id_seq"'::text::regclass)
 name               | text    |           | not null |
```

shokushuテーブルのモデルは以下のようになります。
```PHP
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Shokushu extends Model
{
    use HasFactory;

    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'shokushu';

    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;

    protected $guarded = ['note', 'timestamp'];

    public function gameRelation(): BelongsTo
    {
        return $this->belongsTo(Gamelist::class, 'game', 'id');
    }

    public function createrRelation(): BelongsTo
    {
        return $this->belongsTo(Createrlist::class, 'creater', 'id');
    }
}
```

ここで
```PHP
    public function gameRelation(): BelongsTo
    {
        return $this->belongsTo(Gamelist::class, 'game', 'id');
    }
```
を、
```PHP
    public function game(): BelongsTo
    {
        return $this->belongsTo(Gamelist::class, 'game', 'id');
    }
```
としてしまうと、shokushuテーブルにgameという列があるので、
```
$ sail artisan tinker
Psy Shell v0.11.20 (PHP 8.2.8 — cli) by Justin Hileman
> use \App\Models\Shokushu;
> $shokushu = Shokushu::find(10);
= App\Models\Shokushu {#6415
    id: 10,
    game: 1531,
    creater: 106,
    shubetu: 2,
    shubetu_detail: 1,
    shubetu_detail_name: null,
  }
> $shokushu->game;
= 1531
```
のようにgame()の値が返ってくるのではなく、shokushuテーブルのgameの値が返ってきてしまいます。