Tab::make() ->query(function ($query) { return $query ->whereNot('status', OrderStatus::INVOICED) ->whereNot('status', ORderStatus::SHIPPED); }) ->icon(OrderStatus::PRODUCTION->getIcon()) ->badge(function () { return Order::whereNot('status', OrderStatus::SHIPPED) ->whereNot('status', OrderStatus::INVOICED) ->count(); }), 'overdue' => Tab::make() ->query(function ($query) { return $query->whereDate('due_date', '<=', today()) ->whereNot('status', OrderStatus::INVOICED) ->whereNot('status', ORderStatus::SHIPPED); }) ->icon('lucide-calendar-clock') ->badge(function () { $count = Order::whereDate('due_date', '<=', today()) ->whereNot('status', OrderStatus::INVOICED) ->whereNot('status', ORderStatus::SHIPPED) ->count(); return $count > 0 ? $count : null; }) ->badgeColor('danger'), 'rush' => Tab::make() ->query(function ($query) { return $query->where('rush', true) ->whereNot('status', OrderStatus::INVOICED) ->whereNot('status', OrderStatus::SHIPPED); }) ->icon(OrderAttributes::rush->getIcon()) ->badge(function () { $count = Order::where('rush', true) ->whereNot('status', OrderStatus::INVOICED) ->whereNot('status', OrderStatus::SHIPPED) ->count(); return $count > 0 ? $count : null; }) ->badgeColor('warning'), null => Tab::make('All') ->icon('lucide-layout-grid'), // 'draft' => Tab::make() // ->query(fn ($query) => $query->where('status', OrderStatus::DRAFT->value)) // ->icon(OrderStatus::DRAFT->getIcon()), // // 'approved' => Tab::make() // ->query(fn ($query) => $query->where('status', OrderStatus::APPROVED->value)) // ->icon(OrderStatus::APPROVED->getIcon()), // // 'production' => Tab::make() // ->query(fn ($query) => $query->where('status', OrderStatus::PRODUCTION->value)) // ->icon(OrderStatus::PRODUCTION->getIcon()), // // 'shipped' => Tab::make() // ->query(fn ($query) => $query->where('status', OrderStatus::SHIPPED->value)) // ->icon(OrderStatus::SHIPPED->getIcon()), // // 'invoiced' => Tab::make() // ->query(fn ($query) => $query->where('status', OrderStatus::INVOICED->value)) // ->icon(OrderStatus::INVOICED->getIcon()), ]; } }