Обидва методи виконують запит, але повертають різне:
get()повертає колекцію (Illuminate\Database\Eloquent\Collection) усіх відповідних моделей. Якщо нічого не знайдено - порожню колекцію, а неnull. Підходить, коли треба перебрати кілька записів.first()повертає одну першу модель абоnull, якщо нічого не знайдено. Підходить, коли очікуєш один запис.
$posts = Post::where('active', true)->get(); // Collection (0..N моделей)
$post = Post::where('slug', $slug)->first(); // Post|null
foreach ($posts as $post) { /* ... */ } // get() - ітеруємо
echo $post?->title; // first() - перевіряємо на null
Споріднені методи:
find($id)- пошук за первинним ключем.firstOrFail()/findOrFail()- якfirst()/find(), але кидаютьModelNotFoundException(HTTP 404), якщо запис відсутній.pluck('email')- колекція значень одного стовпця.value('email')- одне скалярне значення з першого рядка.
Підсумок: get() - багато рядків (колекція), first() - один рядок (модель або null).