SelectFilter::make('status') ->multiple() ->options( OperationStatus::descriptionsByValue(), ) ->default([ OperationStatus::DOWNLOADABLE->value, OperationStatus::ONGOING->value, OperationStatus::REASSIGNABLE->value, ]) ->translateLabel() ->label('camping::operation.fields.status'), --------------------------------- SelectFilter::make('asset') ->multiple() ->relationship( name: 'assets', titleAttribute: 'full_description', modifyQueryUsing: fn (Builder $query) => $query->orderBy('full_description'), ) ->translateLabel() ->label('camping::operation.fields.asset'), ----------------------------------- SelectFilter::make('priority') ->multiple() ->relationship( name: 'priority', titleAttribute: 'name', modifyQueryUsing: fn (Builder $query) => $query->orderByDesc('level'), ) ->translateLabel() ->label('camping::operation.fields.priority'), SelectFilter::make('type') ->multiple() ->relationship( name: 'operationType', titleAttribute: 'name', modifyQueryUsing: fn (Builder $query) => $query->orderBy('name'), ) ->translateLabel() ->label('camping::operation.fields.operation_type'), SelectFilter::make('area') ->multiple() ->relationship( name: 'area', titleAttribute: 'name', modifyQueryUsing: fn (Builder $query) => $query->orderBy('name'), ) ->translateLabel() ->label('camping::operation.fields.area'), SelectFilter::make('technician') ->multiple() ->relationship( name: 'technicians', titleAttribute: 'first_name', modifyQueryUsing: fn (Builder $query) => $query->orderBy('first_name'), ) ->translateLabel() ->label('camping::operation.fields.technician'), SelectFilter::make('asset') ->multiple() ->relationship( name: 'assets', titleAttribute: 'full_description', modifyQueryUsing: fn (Builder $query) => $query->orderBy('full_description'), ) ->translateLabel() ->label('camping::operation.fields.asset'), Filter::make('description') ->form([ TextInput::make('description') ->translateLabel() ->label('camping::operation.fields.description'), ]) ->query(fn (Builder $query, array $data): Builder => $query ->when( $data['description'], fn (Builder $query, $data) => $query ->where('description', 'LIKE', "%{$data}%"), )), Filter::make('code') ->form([ TextInput::make('code') ->translateLabel() ->label('camping::operation.fields.code'), ]) ->query( fn (Builder $query, array $data) => $query ->when( $data['code'], fn (Builder $query, $data): Builder => $query->where('code', 'LIKE', "%{$data}%"), ), ),