For anyone having the same issue, I want to save you the trouble and a lot of gray hairs.
I have found a usable solution
So I had this route:
Route::get('{slug}', 'PageController@resolve');
I also have a model for my Slug. this is called PathAlias
So first I have the Route-Model-Binding:
Route::bind('path_alias', function ($value) {
return App\PathAlias::where('alias', $value)->first();
});
Then I have the above route in the bottom of my routes.php, but with a small modification:
Route::get('{path_alias}', function(\App\PathAlias $path_alias){
return Route::dispatchToRoute(\Illuminate\Http\Request::create($path_alias->source));
});
What I have done was going through the sourcecode and within the SymfonyRequest class there was a static method to create a request. So without having to redirect to the resolved path, I could dispatch a new request directly to the routing layer and then it would find the route for the controller responsible for handling the request.
With this solution there is no need to create routes following a specific pattern, although I recommend it, which means as long as there is a route for the source of my slug, it can also display the results.
Of course this is just created with a closure, but shows the basic way of doing it. A production ready solution would be able to handle 404 etc. therefore it should be in a controller.