Route caching system doubles route prefixes for routes that are grouped and prefixed with more than 2 levels of nesting.
It appeared in 7.0.1 and the new release fixed the problem for only 1 level of nesting.
But the problem persists for 2+ levels of nesting.
Route::prefix('profile')->group(function () {
Route::prefix('{user:username}')->group(function () {
Route::prefix('block')->middleware(['auth'])->group(function () {
Route::post('/', 'HomeController@index')->name('profile.block');
Route::delete('/', 'HomeController@index')->name('profile.unblock');
});
});
});Like this:

Cache the routes in the command line using:
php artisan route:cache
Now get the routes list from the command line using php artisan route:list, and you will see this route:
profile/{user:username}/block/profile/{user}/block
After a quick look, it seems like this bit of code is causing the problem:

The prefix contains the scoping parameters, in your case {user:username}, whereas the uri does not, so it's not getting replaced / removed from the URI.
up
Looking into this
Released 7.0.3 with a fix for this.