Неправильно ограничивать роут по тому что он не должен принимать.
Правильно - определить какие параметры он ДОЛЖЕН принимать. Потому что количество значений которые не должен принимать - может увеличиваться, и route не должен на них реагировать.
Поэтому:
Route::get('/upload/{id}', function(){
return 'id integer';
})->where('id','[\d]+')
->name('upload.index');
Route::get('/upload/remove', function(){
return 'remove';
})->name('upload.remove');
Если не работает - значит какой то роут раньше срабатывает.