Чем отличаются эти две почти идентичные функции?
Предполагаю, что в первом варианте замыкание (анонимная функция), в котором инициализируется все это дело, не вызывается на момент попытки вами обратиться к объекту User (к Eloquent). Вам сперва нужно произвести саму инициализацию, что вы и сделали в примере 2.
В первом варианте вы вызываете объект класса внутри функции и использовать его можете соответственно только внутри функции. Во втором варианте вы вызываете объект класса в глобальном пространстве и передаете его в анонимную функцию.