と思ってます。
Laravelだとこういうクエリは原則使わないほうが良いのかなぁと。
User::select('id', 'name')->get();
項目が限定されて取得されている、という認知負荷
項目が限定されて取得されているので、select()されていないデータを取得しようとして、DBにデータが入っているのにnullを返してしまったりします。直接的にデータ取得するときもそうですが、getterなど間接的に利用されている場合はさらにわかりづらいです。
また、仕様変更などでselectする項目が増えたときに修正箇所が増えて面倒というのもあります。selectの修正漏れで期待通りに動かず右往左往、ということもありそうです。
静的解析でのチェックも基本的に難しく Laravel/Eloquent で言うと PHPStan/Larastan でselectされていない項目をnull判定するなどの細かい検知はできません。
ちなみに、Node.jsのPrismaはselectした項目を良い感じに型付けしているORMなので静的解析でのチェック・補完ができるのですが、仕様変更時などでselectを逐一追加する運用コストは変わりません。また、こういったselectレベルで型安全なORMはPrismaくらいしかなさそう、というのもあります。
selectしたところでそんなにパフォーマンスは上がらない
だいたいパフォーマンス目的で!みたいなこと言われるんですがそんなにパフォーマンス上がりますか?測りましたか?ところでそれは人件費よりもコスパ良いですか?
もちろんORMはメモリを食いがちですが、それであればORMのモデルクエリよりはクエリビルダでSQLを直接書いたほうが良いかもしれません。