how i could pass the server parameter to index and create and edit pages route? Filament

im using filament for first time

this is my server resource

<?php

namespace AppFilamentResources;

use FilamentForms;
use FilamentTables;
use AppModelsServer;
use FilamentFormsForm;
use FilamentTablesTable;
use FilamentResourcesResource;
use FilamentTablesActionsAction;
use FilamentTablesFiltersSelectFilter;
use IlluminateDatabaseEloquentBuilder;
use AppFilamentResourcesServerResourcePages;
use IlluminateDatabaseEloquentSoftDeletingScope;
use AppFilamentResourcesServerResourceRelationManagers;
use FilamentFormsComponentsSpatieMediaLibraryFileUpload;

class ServerResource extends Resource
{
    protected static ?string $model = Server::class;

    protected static ?string $navigationIcon = 'heroicon-o-server';

    protected static ?string $navigationLabel = 'Servers';
    protected static ?int $navigationSort = 1;

    protected static ?string $navigationGroup = 'Application';

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                SpatieMediaLibraryFileUpload::make('Image')
                    ->label('Server Image')
                    ->collection('image')
                    ->image()
                    ->acceptedFileTypes(['image/jpeg', 'image/png', 'image/jpg'])
                    ->maxSize(30720) // 30MB
                    ->columnSpan(6)
                    ->required(),

                FormsComponentsTextInput::make('name')
                    ->required()
                    ->columnSpan(6)
                    ->maxLength(255),

                FormsComponentsSelect::make('type')
                    ->label('Server Type')
                    ->columnSpan(6)
                    ->options([
                        'free' => 'Free',
                        'premium' => 'Premium',
                    ])
                    ->native(false)
                    ->required(),

                FormsComponentsSelect::make('status')
                    ->columnSpan(6)
                    ->options([
                        'active' => 'Active',
                        'inactive' => 'Inactive',
                    ])
                    ->native(false)
                    ->required(),
                FormsComponentsToggle::make('android')
                    ->columnSpan(4),

                FormsComponentsToggle::make('ios')
                    ->columnSpan(4),

                FormsComponentsToggle::make('macos')
                    ->columnSpan(4),

                FormsComponentsToggle::make('windows')
                    ->columnSpan(4),
            ])
            ->columns(1); // Forces each field to be in a separate line
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TablesColumnsSpatieMediaLibraryImageColumn::make('Image')
                    ->collection('image')
                    ->label('Image')
                    ->square(),
                TablesColumnsTextColumn::make('name')
                    ->searchable(),
                TablesColumnsTextColumn::make('platforms')
                    ->label('Platforms')
                    ->badge()
                    ->color(fn($state) => match ($state) {
                        'Android' => 'success',  // Green
                        'iOS' => 'info',         // Blue
                        'macOS' => 'gray',       // Gray
                        'Windows' => 'warning',  // Yellow
                        default => 'secondary',  // Default color
                    })
                    ->state(function (Server $record) {
                        $platforms = [];

                        if ($record->android) {
                            $platforms[] = 'Android';
                        }
                        if ($record->ios) {
                            $platforms[] = 'iOS';
                        }
                        if ($record->macos) {
                            $platforms[] = 'macOS';
                        }
                        if ($record->windows) {
                            $platforms[] = 'Windows';
                        }

                        return $platforms ?: ['None'];
                    }),
                TablesColumnsTextColumn::make('type')
                    ->badge()
                    ->state(function (Server $record) {
                        return match ($record->type) {
                            'free' => 'Free',
                            'premium' => 'Premium',
                            default => 'Unknown',
                        };
                    })
                    ->color(fn($record) => match (strtolower($record->type)) {
                        'free' => 'success',
                        'premium' => 'warning',
                    })
                    ->sortable(),
                TablesColumnsTextColumn::make('status')
                    ->badge()
                    ->state(function (Server $record) {
                        return match ($record->status) {
                            'active' => 'Active',
                            'inactive' => 'Inactive',
                            default => 'Unknown',
                        };
                    })
                    ->color(fn($record) => match (strtolower($record->status)) {
                        'active' => 'success',
                        'inactive' => 'danger',
                        default => 'gray', // Default color in case there's an unexpected value
                    })
                    ->sortable(),
                TablesColumnsTextColumn::make('created_at')
                    ->dateTime()
                    ->sortable()
                    ->toggleable(isToggledHiddenByDefault: true),
                TablesColumnsTextColumn::make('updated_at')
                    ->dateTime()
                    ->sortable()
                    ->toggleable(isToggledHiddenByDefault: true),
            ])
            ->filters([
                SelectFilter::make('status')
                    ->options([
                        'active' => 'Active',
                        'inactive' => 'Inactive',
                    ])
                    ->placeholder('All')
                    ->default(null)
                    ->label('Status'),
                SelectFilter::make('type')
                    ->options([
                        'free' => 'Free',
                        'premium' => 'Premium',
                    ])
                    ->placeholder('All')
                    ->default(null)
                    ->label('Type'),
                SelectFilter::make('platform')
                    ->options([
                        'android' => 'Android',
                        'ios' => 'iOS',
                        'macos' => 'macOS',
                        'windows' => 'Windows',
                    ])
                    ->query(function (Builder $query, array $data) {
                        if (!empty($data['values'])) {
                            foreach ($data['values'] as $platform) {
                                $query->orWhere($platform, true);
                            }
                        }
                    })
                    ->placeholder('All')
                    ->multiple()
                    ->label('Platform'),
            ])
            ->actions([
                TablesActionsEditAction::make()
                    ->iconButton(),
                TablesActionsDeleteAction::make()
                    ->action(function (Server $record) {
                        $record->delete();
                    })
                    ->requiresConfirmation()
                    ->modalHeading('Delete Server')
                    ->modalDescription('Are you sure you want to delete this server?')
                    ->iconButton()
                    ->modalSubmitActionLabel('Delete'),
                TablesActionsAction::make('view-sub-servers')
                    ->url(fn(Server $record) => route('filament.admin.resources.server.{server}.sub-servers.index', ['server' => $record->id]))
                    ->icon('heroicon-o-server')
                    ->iconButton()
                    ->color('primary'),
            ])
            ->bulkActions([
                TablesActionsBulkActionGroup::make([
                    TablesActionsDeleteBulkAction::make(),
                ]),
            ]);
    }

    public static function getRelations(): array
    {
        return [
            RelationManagersSubServersRelationManager::class,
        ];
    }

    public static function getPages(): array
    {
        return [
            'index' => PagesListServers::route('/'),
            'create' => PagesCreateServer::route('/create'),
            'edit' => PagesEditServer::route('/{record}/edit'),
            'view-sub-servers' => PagesViewSubServers::route('/{record}/sub-servers'),
        ];
    }
}

as u can see i have a btn that redirects to that server sub servers resource

TablesActionsAction::make('view-sub-servers')
                    ->url(fn(Server $record) => route('filament.admin.resources.server.{server}.sub-servers.index', ['server' => $record->id]))
                    ->icon('heroicon-o-server')
                    ->iconButton()
                    ->color('primary'),

now in my sub server resource

protected static ?string $slug = 'server/{server}/sub-servers';

i have set the url slug also to receieve a parameter as server

and set the query builder to get that parameter and fetch sub servers of that server id

public static function getEloquentQuery(): Builder
    {
        $serverId = request()->route('server');
        return parent::getEloquentQuery()->where('server_id', $serverId);
    }

now when i open a specific server sub server resource page

i get this error

Missing required parameter for [Route: filament.admin.resources.server.{server}.sub-servers.edit] [URI: admin/server/{server}/sub-servers/edit] [Missing parameter: server].

i tried commenting the edit page in getPages

public static function getPages(): array
    {
        return [
            'index' => PagesListSubServers::route('/'),
            'create' => PagesCreateSubServer::route('/create'),
            // 'edit' => PagesEditSubServer::route('/edit'),
        ];
    }

// TablesActionsEditAction::make(),

but then i got this error?

Missing required parameter for [Route: filament.admin.resources.server.{server}.sub-servers.index] [URI: admin/server/{server}/sub-servers] [Missing parameter: server].

now my question is how to i can pass parameters to index,create, edit pages?

Sub Server Resource code

<?php

namespace AppFilamentResources;

use AppFilamentResourcesSubServerResourcePages;
use AppFilamentResourcesSubServerResourceRelationManagers;
use AppModelsSubServer;
use FilamentForms;
use FilamentFormsForm;
use FilamentResourcesResource;
use FilamentTables;
use FilamentTablesTable;
use IlluminateDatabaseEloquentBuilder;
use IlluminateDatabaseEloquentSoftDeletingScope;
use IlluminateSupportFacadesLog;

class SubServerResource extends Resource
{
    protected static ?string $model = SubServer::class;

    protected static ?string $navigationIcon = 'heroicon-o-server';
    protected static bool $shouldRegisterNavigation = false;

    protected static ?int $navigationSort = 2;
    protected static ?string $navigationGroup = 'Application';

    protected static ?string $slug = 'server/{server}/sub-servers';

    public static function getEloquentQuery(): Builder
    {
        $serverId = request()->route('server');
        return parent::getEloquentQuery()->where('server_id', $serverId);
    }

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                FormsComponentsSection::make('Sub Server')
                    ->description('Enter the sub server details')
                    ->schema([
                        FormsComponentsSelect::make('Server')
                            ->relationship('server', 'name')
                            ->required()
                            ->columnSpan(6)
                            ->searchable()
                            ->preload()
                            ->reactive(),

                        FormsComponentsTextInput::make('name')
                            ->required()
                            ->columnSpan(6)
                            ->maxLength(255),

                        FormsComponentsSelect::make('status')
                            ->columnSpan(6)
                            ->options([
                                'active' => 'Active',
                                'inactive' => 'Inactive',
                            ])
                            ->native(false)
                            ->required(),
                    ])
                    ->columns(1),
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TablesColumnsTextColumn::make('server.name')
                    ->label('Server Name'),
                TablesColumnsTextColumn::make('name')
                    ->sortable()
                    ->searchable(),
                TablesColumnsTextColumn::make('status')
                    ->badge()
                    ->state(function ($record) {
                        return match ($record->status) {
                            'active' => 'Active',
                            'inactive' => 'Inactive',
                            default => 'Unknown',
                        };
                    })
                    ->color(fn($record) => match (strtolower($record->status)) {
                        'active' => 'success',
                        'inactive' => 'danger',
                        default => 'gray', // Default color in case there's an unexpected value
                    })
                    ->sortable(),

                TablesColumnsTextColumn::make('created_at')
                    ->dateTime()
                    ->sortable()
                    ->toggleable(isToggledHiddenByDefault: true),
                TablesColumnsTextColumn::make('updated_at')
                    ->dateTime()
                    ->sortable()
                    ->toggleable(isToggledHiddenByDefault: true),
            ])
            ->filters([
                //..
            ])
            ->actions([
                // TablesActionsEditAction::make(),
            ])
            ->bulkActions([
                TablesActionsBulkActionGroup::make([
                    TablesActionsDeleteBulkAction::make(),
                ]),
            ]);
    }

    public static function getRelations(): array
    {
        return [
            //
        ];
    }

    public static function getPages(): array
    {
        return [
            'index' => PagesListSubServers::route('/'),
            'create' => PagesCreateSubServer::route('/create'),
            // 'edit' => PagesEditSubServer::route('/edit'),
        ];
    }
}