Query optimization tips:
Select Only Needed Columns
User::select('id', 'name', 'email')->get();Use Chunking
User::chunk(100, function ($users) {
foreach ($users as $user) {
// Process
}
});Lazy Collections
User::lazy()->each(function ($user) {
// Memory efficient
});Use Cursor
foreach (User::cursor() as $user) {
// One at a time
}Raw Expressions
User::selectRaw('COUNT(*) as count, status')
->groupBy('status')
->get();