records(function (?array $filters) use ($service) { $from = Arr::get($filters, 'period.date_from') ?? now()->startOfMonth()->toDateString(); $to = Arr::get($filters, 'period.date_to') ?? now()->toDateString(); return new Collection($service->salesPerProduct($from, $to)); }) ->columns([ TextColumn::make('code')->label('Kode Produk')->badge(), TextColumn::make('name')->label('Nama Produk'), TextColumn::make('qty')->label('Qty Terjual')->numeric(), TextColumn::make('revenue')->label('Omzet')->numeric()->prefix('Rp '), ]) ->filters([ Filter::make('period') ->schema([ DatePicker::make('date_from')->label('Dari')->default(now()->startOfMonth()->toDateString()), DatePicker::make('date_to')->label('Sampai')->default(now()->toDateString()), ]), ]) ->paginated(false); } public function content(Schema $schema): Schema { return $schema ->components([ EmbeddedTable::make(), ]); } }