することで開発環境でのみこの設定を有効にすることができますModel::shouldBeStrict()を追記すると以下のようなメリットがあります。N+1問題が起きているとエラーで教えてくれるfillableに登録していない項目を投入しようとするとエラーで教えてくれるEloquentモデルで存在しないプロパティやselectしていない項目にアクセスするとエラーで教えてくれるModel::shouldBeStrict()の中身はこうなっています。static::preventAccessingMissingAttributes($shouldBeStrict);}先程メリットで挙げた項目を実現してくれているメソッドがそれぞれ呼ばれていることが分かります。3つもいらなくてどれかを抜粋して利用したい場合はこのshouldBeStrictは使えませんが、その場合はAppServiceProvider.phpに個別で設定してあげれば実現できます。shouldBeStrictはまとめて呼び出してくれてるだけなので!せっかくなのでshouldBeStrictで呼び出されているメソッドも簡単に見ていきましょう。preventLazyLoadingpreventLazyLoadingメソッドの中身は以下のようになっています。8.43.0で追加されたメソッドです$modelsShouldPreventLazyLoadingプロパティをtrueにしているようです。このメソッドは、N+1問題が起きているとエラーで教えてくれます。$this->app->isProduction());}preventSilentlyDiscardingAttributespreventSilentlyDiscardingAttributesメソッドの中身は以下のようになっています。9.28で追加されたメソッドです$modelsShouldPreventSilentlyDiscardingAttributesプロパティをtrueにしているようです。このメソッドは、fillableに登録していない項目を投入しようとするとエラーで教えてくれます。個人的にはこの3つの中で一番嬉しい機能です。過去に、ちゃんとプロパティを指定して保存できているはずなのにDBを確認するとなぜか保存されていない、という現象に出くわしました。原因はfillable設定で抜けていたというケアレスミスでした。(1回ではなく何回かあり、数十分無駄にしました)同じミスをしたことがある方もいるのではないでしょうか。$this->app->isProduction());}preventAccessingMissingAttributespreventAccessingMissingAttributesメソッドの中身は以下のようになっています。9.35で追加されたメソッドです$modelsShouldPreventAccessingMissingAttributesプロパティをtrueにしているようです。このメソッドは、Eloquentモデルで存在しないプロパティやselectしていない項目にアクセスするとエラーで教えてくれます。//nameをタイポしているがエラーにならずnullになる上記のように今までだとタイポしていてもエラーにならずnullが返ってきます。設定を有効にしているとタイポした時点でエラーで教えてくれるのでバグを未然に防ぐことが出来そうですね!以上がLaravel開発時にしておくと良い初期設定でした。よかったら使ってみてください!ご指摘などがあればコメントで教えていただけたらと思います。