authorize('view', [$site, $server]); return Inertia::render('site-features/index', [ 'features' => $site->features(), ]); } #[Post('/{feature}/{action}', name: 'site-features.action')] public function action(Request $request, Server $server, Site $site, string $feature, string $action): RedirectResponse { $this->authorize('update', [$site, $server]); $handler = config('site.types.'.$site->type.'.features.'.$feature.'.actions.'.$action.'.handler'); if ($handler && class_exists($handler)) { /** @var ActionInterface $actionHandler */ $actionHandler = new $handler($site); $actionHandler->handle($request); } return back(); } }