return [ 'driver' => 'file', 'files' => storage_path().'/framework/sessions', ]; 
  Мои storage/framework/sessions имеют 755 разрешений. 
Когда я помещаю эти 2 строки в свой контроллер
 Session::set('aa', 'bb'); dd(Session::get('aa')); 
  Я получаю ожидаемый вывод "bb" .  Но если я прокомментирую первую строку: 
 // Session::set('aa', 'bb'); dd(Session::get('aa')); 
  и обновить страницу, я все еще ожидаю "bb" но получаю null . 
  Кроме того, storage/framework/sessions пустые. 
Что мне нужно сделать для работы сеанса?
  Laravel 5 обрабатывает сеансы через класс промежуточного ПО StartSession .  Что еще более важно, это промежуточное ПО представляет собой TerminableMiddleware а код, который фактически сохраняет данные (в вашем случае для файла сеанса), находится в методе terminate , который запускается в конце жизненного цикла запроса: 
 public function terminate($request, $response) { if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) { $this->manager->driver()->save(); } } 
  При вызове dd(Session::get('aa'));  запрос прерывается до того, как может быть вызван метод завершения промежуточного программного обеспечения. 
  Как ни странно, документальная документация Laravel Middleware фактически объясняет логику Terminable Middleware, предоставив промежуточное ПО Laravel StartSession в качестве примера: 
Например, промежуточное программное обеспечение «сеанс», включенное в Laravel, записывает данные сеанса в хранилище после того, как ответ отправлен в браузер.
  При этом попробуйте использовать var_dump() вместо использования dd() .