Sorun iki rotanın birbiriyle karışmasıymış. Web rotasında en altta bulunan category rotası olduğu için ilk parametreyi doğrudan orada kullanmaya çalışıyormuş.
Route::group(['prefix' => '/', 'middleware' => ['theme_selector']],function(){
Route::get('/',[HomeController::class,'index'])->name('web.home');
Route::get('/{category}/haber/{slug}',[PostController::class,'show'])->name('web.post.detail');
Route::get('/{category}',[PostCategoryController::class,'show'])->name('web.post_category.detail');
});
RouteServiceProvider'da admin rotalarını web rotalarının üzerine taşıdım ve sorun çözüldü.
$this->routes(function () {
/*Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));*/
Route::middleware('web')
->group(base_path('routes/admin.php'));
Route::middleware('web')
->group(base_path('routes/web.php'));
});