Клас Collection у Laravel — незамінний інструмент, який більшість розробників використовує щодня. Проте під час конвертації колекції у звичайний масив легко припуститися помилки, обравши не той метод.
Часто ми інтуїтивно використовуємо toArray(), і для простих колекцій цей метод працює цілком передбачувано:
$collection = collect([1, 2, 3]);
$collection->toArray(); // повертає [1, 2, 3]
Але поведінка змінюється, коли йдеться про колекції Eloquent models. Розглянемо приклад із викликом toArray() для списку користувачів:
$usersCollection = User::all(); // повертає колекцію
$usersArray = $usersCollection->toArray();
ray($usersArray);
Ось як цей результат виглядає у Ray:

Метод toArray() працює рекурсивно: він перетворив на масиви не лише саму колекцію, а й усі моделі всередині неї. Часто це не той результат, який нам потрібен.
Щоб отримати масив, зберігши у ньому об'єкти моделей, слід використовувати метод all().
$usersCollection = User::all(); // повертає колекцію
$usersArray = $usersCollection->all();
ray($usersArray);
Тепер у Ray ми бачимо, що масив містить саме екземпляри моделей User:
