Laravel сортировка выборки из бд с помощью sortBy?
Создадим коллекцию эллементов с именами:$collection = collect([['name' => 'c'], ['name' => 'b'], ['name' => 'a']]);
Дампним и посмотрим что у нас там:Collection {#581 ▼
  #items: array:3 [▼
    0 => array:1 [▼
      "name" => "c"
    ]
    1 => array:1 [▼
      "name" => "b"
    ]
    2 => array:1 [▼
      "name" => "a"
    ]
  ]
}
А теперь отсортируем и дампним снова dd($collection->sortBy('name'));:Collection {#566 ▼
  #items: array:3 [▼
    2 => array:1 [▼
      "name" => "a"
    ]
    1 => array:1 [▼
      "name" => "b"
    ]
    0 => array:1 [▼
      "name" => "c"
    ]
  ]
}
Как видите порядок в коллекции изменился, теперь она отсортирована по имени. Но, ключи сохранились прежние, поэтому вызов dd($data[0],$data[1],$data[2]); выведет значения в старом порядке.
То есть сортировка будет сохранена при порядковом обходе коллекции, обращаясь по ключу вы нарушаете этот порядок.
Метод  values() вернет новую коллекцию, в которой ключи сбросятся и будут пронумерованы заново, по порядку, то есть ключи будут соответствовать сортировке$collection->values()
Если вы получаете коллекцию из БД, то эффективнее делать сортировку непосредственно на стороне БД, в остальных случаях учитывайте описанное поведение коллекций.
Используйте сортировку средствами СУБД:$data = Workers::orderBy('name')->get();
Настоятельно не рекомендую пользоваться функцией сортировки коллекций. Даже на небольших объемах - это очень медленный способ.