authorize('update', [$this->server, auth()->user()->currentProject]); } public function getWidgets(): array { return [ [ ServerDetails::class, ['server' => $this->server], ], [ UpdateServerInfo::class, ['server' => $this->server], ], ]; } protected function getHeaderActions(): array { return [ Action::make('delete') ->icon('heroicon-o-trash') ->color('danger') ->requiresConfirmation() ->modalHeading('Delete Server') ->modalDescription('Once your server is deleted, all of its resources and data will be permanently deleted and can\'t be restored') ->authorize('delete', $this->server) ->action(function () { try { $this->server->delete(); Notification::make() ->success() ->title('Server deleted') ->send(); $this->redirect(Index::getUrl()); } catch (\Throwable $e) { Notification::make() ->danger() ->title($e->getMessage()) ->send(); } }), Action::make('reboot') ->color('gray') ->icon('heroicon-o-arrow-path') ->label('Reboot') ->requiresConfirmation() ->action(function () { app(RebootServer::class)->reboot($this->server); $this->dispatch('$refresh'); Notification::make() ->info() ->title('Server is being rebooted') ->send(); }), ]; } protected function getServer(): ?Server { return $this->server; } }