Я думаю, что это как-то связано с промежуточным программным обеспечением «сети». Если вы загляните в Kernel.php (в app \ Http), вы найдете группу веб-промежуточного программного обеспечения.
Это покажет вам, что на самом деле он вызывает промежуточное программное обеспечение с именем StartSession. Основываясь на вашем файле маршрута (где веб не включен в качестве промежуточного программного обеспечения), я думаю, что у вас нет сеанса в вашем контроллере и нет доступа к нему.
Я не совсем понимаю, почемуэто происходит только в вашем маршруте / dashboard, потому что проблема также должна быть в вашем маршруте / index (если вы не добавили веб-промежуточное ПО где-то в вашем TodoController).
Я думаю, что это должно сработать:
Route::middleware(['web', 'auth'])->group(function () {
Route::get('/index', 'todoApp\TodoController@index')->name('index');
Route::get('/dashboard', 'todoApp\Dashboard@dashboard')->name('dashboard');
});