sortable(), Text::make('Fleet Number') ->sortable() ->rules('required', 'unique:vehicles,fleet_number,{{resourceId}}'), Text::make('License Plate') ->sortable(), Text::make('Make') ->sortable() ->rules('required'), Text::make('Model') ->sortable() ->rules('required'), Number::make('Year') ->sortable() ->rules('required', 'digits:4'), Text::make('VIN') ->hideFromIndex() ->rules('required', 'size:17', 'unique:vehicles,vin,{{resourceId}}'), Text::make('Color') ->hideFromIndex(), Number::make('Mileage') ->sortable() ->rules('required', 'numeric', 'min:0'), Badge::make('Status') ->map([ 'active' => 'success', 'in_repair' => 'warning', 'out_of_service' => 'danger', ]) ->sortable(), Textarea::make('Notes') ->alwaysShow() ->hideFromIndex(), HasMany::make('Repair Orders'), HasMany::make('Maintenance Schedules'), MorphMany::make('Documents'), ]; } public function cards(NovaRequest $request): array { return [ new VehiclesPerStatus, ]; } public function filters(NovaRequest $request): array { return [ new VehicleStatusFilter, ]; } public function lenses(NovaRequest $request): array { return [ new VehiclesDueForMaintenance, ]; } public function actions(NovaRequest $request): array { return []; } }