Laravel Boostを使って、Laravel 12プロジェクトをLaravel 13にアップグレードした手順をまとめます。
Laravel Boostとは、公式が提供するMCPサーバーです。Laravel×生成AIツールで開発を行う際に非常に便利!
このLaravel Boostに、Laravelバージョンアップ用機能も搭載されたということで、こちらを使って、生成AIに作業をサポートしてもらいながらアップグレードを進めました。

一言でいうと便利ですが、ただ、やはり手動作業は発生しましたね…
実際に経験した手順をこちらにまとめます。なお、公式のアップグレードガイドはこちらです。
Laravel 12→13にアップグレードするための要件
Laravel BoostでLaravel12から13にアップグレードするときには、次のような条件が必要となります。またClaude Codeなどの生成AIツールも必要です。
- PHP 8.3以上
- Laravel Boost v2.0以上(今回のAIによるアップグレード機能を使う場合)
- Laravel v12.41.1以上(Boost v2の前提条件)*
Boost v2のパッケージ依存関係として定義されていました。
Laravel Boostでのアップグレードについて
今回はLaravel Boostの/upgrade-laravel-v13コマンドを使用します。
公式ドキュメントでも、Laravel Boostをつかったアップグレードに「/upgrade-laravel-v13」が使用できると紹介されています。
You can automate your upgrade using Laravel Boost. Boost is a first-party MCP server that provides your AI assistant with guided upgrade prompts — once installed in any Laravel 12 application, use the /upgrade-laravel-v13 slash command in Claude Code, Cursor, OpenCode, Gemini, or VS Code to begin the upgrade to Laravel 13.
このコマンドを実行すると、Laravel Boost MCPがプロジェクトの状態を分析し、順番に作業を進めてくれます。
Laravel Boostと生成AI(Claude Codeなど)の役割分担
なお、Laravel Boostと生成AIツールの役割分担を先にお伝えします。
- Laravel Boostは、Laravelの公式ドキュメントに沿って設計図を渡してくれる。
- 生成AIはこの設計図に沿って実際に手を動かしてくれる。
そういった分担となります。

わたしは今回、Claude Codeを使いました。下記は役割分担についてClaude Codeに聞いたときの画面です。

Laravel BoostをV2.0以上にする
まずLaravel Boostは2.0以上が必要となります。
- v2以上が入っている → この節はスキップ
- v1.8以上が入っている → 次のコマンドだけでOK
- v1.8未満が入っている → MCPエラーが出ている可能性あり。2段階の作業が必要
v1.8以上の場合
下記コマンドでLaravel Boostを2.0に上げます。
|
1 |
composer require laravel/boost:^2.0 --dev --no-interaction |
v1.8未満の場合
Claude Codeを最新版にアップデートしたタイミングで Failed to reconnect to laravel-boost エラーが出ることがあります。storage/logs/laravel.log に以下が記録されていたら該当します。
|
1 |
The "--transport" option does not exist. |
これはClaude Codeの新バージョンが --transport=http オプションを渡すようになった一方、Laravel Boost v1.8未満が未対応なのが原因です。
以下のコマンドでまずMCPエラーを解消します。
|
1 |
composer update laravel/framework laravel/boost --with-all-dependencies --no-interaction |
MCPエラーが解消したら、続けてv2に上げます。
|
1 |
composer require laravel/boost:^2.0 --dev --no-interaction |
Laravel 13へのアップグレード(Laravel Boost使用)
Laravel Boost v2が入ったら、いよいよLaravel 13へアップグレードします。
Claude Code等の生成AIツールのチャット欄でスラッシュコマンドを実行します。
|
1 |
/upgrade-laravel-v13 |

実行すると、アップグレード作業が進んでいきます。


エラーが出た場合
私の場合は、pestphp/pest-plugin-laravel のバージョン制約がLaravel 13と競合してエラーになりました。
|
1 |
pestphp/pest-plugin-laravel v3.2.0 requires laravel/framework ^11.x|^12.x |
生成AIが処理をしてくれました。この場合は composer.json の該当箇所を以下のように修正してから composer update を再実行します。
|
1 |
"pestphp/pest-plugin-laravel": "^3.2|^4.0" |
プロジェクトによってエラーが出るところは異なるかと思います。

生成AIが着々と処理してくれますので、とりあえず見守っておくと良いかと。
アップグレード後にAIが修正した点
このあたり、Claude Codeが自動で進めてくれましたが、まとめておきます。
Livewire 4 のデフォルトレイアウト変更
Livewire v3からv4でデフォルトのレイアウトパスが変わりました。
- v3:
components.layouts.app - v4:
layouts::app(多くのプロジェクトで存在しないパス)
ルートに直接登録されているページコンポーネントに、レイアウトを明示的に指定する必要があります。
|
1 |
#[Layout('components.layouts.app')] |
対象のコンポーネントは routes/web.php を確認して特定できますが、独自に追加したコンポーネントはブラウザでアクセスして初めてエラーになるケースもあります。

やっぱり、アップグレード後は全ページを一通り動作確認が必要です。
cache.php に serializable_classes を追加
config/cache.php の末尾に serializable_classes を追加します。
|
1 |
'serializable_classes' => false, |
PHPオブジェクトをキャッシュに保存していなければ false のままでOKです。
注意が必要そうな変更
今回はシンプルなプロジェクトだったので影響は限られましたが、プロジェクトによっては対応が必要な変更があります。
特に VerifyCsrfToken を直接参照している場合は要確認です。
Laravel 13でCSRFミドルウェアが PreventRequestForgery に名称変更されました。 VerifyCsrfTokenは非推奨となっています。
エイリアスは残っていますが、直接指定している箇所は書き換えをご検討ください。
補足① PHPバージョンはチェック必要
なお、composer.json の PHP バージョン要件が古いまま(^8.2)になっていました。

なぜか自動で変えてくれなかったので、書き換えました。
Laravel 13 の公式要件は PHP 8.3 以上ですので、アップグレード後に composer.json の "php": "^8.3" への書き換えも確認しておくことをおすすめします。
補足② WindowsでPHPをアップグレードする方法(php.new使用時)
私の方では簡単な PHP を利用できる方法として php.new をご紹介しました。この php.new の場合、PHP 8.3 以上にするには、公式ページのコマンドを使用して再度PHPをいれ直せばOKです。
インストール後に php -v を実行してください。
バージョンが切り替わっていない場合(PATHの問題)
なお、複数のPHPを使用している場合は、php.newでバージョンを上げても古いバージョンが使われることがあります。まず状況を確認します。
|
1 |
where.exe php |
※こちらはWindowsの場合です。Macの場合は which php で確認できます。
複数のパスが表示された場合は、一番上に表示されるPHPが、特に何も指定せずPHPコマンドを実行した際に使われます。もし古いPHPが先頭にある場合には、環境変数等の設定を変えてください。
まとめ
Laravel Boostを使うと、手動でアップグレードガイドを読み込む作業と比べてかなり楽になっています。
とはいえ、Laravel Boostのバージョンが古かったりすると、まずはこのバージョンアップが必要になったりと、手こずった部分はありました。
また、Laravel Boostはあくまで公式を参照してくれる設計図で、実際に手を動かすのは生成AIということになります。今回私はClaude Codeを使いましたが、使う生成AIによってはまた違った感じで進むかと思います。
なお、生成AIが直してくれた後は、一度、表示と機能を確認することをおすすめします。

変更漏れがあるとこわいので。やっぱり地道な確認は必要ですよね。
Laravel Boostでのアップグレード、ご興味あれば、ぜひお試しください♪
わたしの方では学習サイト「Laravelの教科書」という学習サイトを運営しています。Laravelの基本から学びつつ、Webアプリをつくれる内容です。
もしあなたが、「Laravelを基礎から分かりやすく知りたい」と思ったら、ぜひご活用ください。
現在、基礎編を無料プレゼント中。詳しくは、こちらのページを見てみてくださいね。

近々、学習サイトへもLaravel 13への対応を追加予定なので、その点は今しばらくお待ちください。



