records(fn () => new Collection($service->paginate(perPage: 100)->items())) ->columns([ TextColumn::make('products.code')->label('Kode')->badge(), TextColumn::make('products.name')->label('Produk'), TextColumn::make('quantity')->label('Saldo')->numeric(), TextColumn::make('products.stock_minimum')->label('Min.'), TextColumn::make('status') ->label('Status') ->badge() ->color(fn (string $state): string => $state === 'kritis' ? 'danger' : 'success') ->state(fn (array $record): string => (int) $record['quantity'] <= (int) data_get($record, 'products.stock_minimum', 0) ? 'kritis' : 'aman'), TextColumn::make('nilai') ->label('Nilai Stok') ->numeric()->prefix('Rp ') ->state(fn (array $record): int => (int) $record['quantity'] * (int) ($record['products']['cost_price'] ?? 0)), ]) ->paginated(false); } public function content(Schema $schema): Schema { return $schema ->components([ EmbeddedTable::make(), ]); } }