group('coupon_information', trans('coupon::coupons.tabs.group.coupon_information')) ->active() ->add($this->general()) ->add($this->usageRestrictions()) ->add($this->usageLimits()); } public function general() { return tap(new Tab('general', trans('coupon::coupons.tabs.general')), function (Tab $tab) { $tab->active(); $tab->weight(5); $tab->fields([ 'name', 'code', 'is_percent', 'value', 'free_shipping', 'start_date', 'end_date', 'is_active', ]); $tab->view('coupon::admin.coupons.tabs.general'); }); } public function usageRestrictions() { return tap(new Tab('usage_restrictions', trans('coupon::coupons.tabs.usage_restrictions')), function (Tab $tab) { $tab->weight(10); $tab->fields(['minimum_spend']); $coupon = Coupon::withoutGlobalScope('active')->findOrNew(request('id')); $tab->view('coupon::admin.coupons.tabs.usage_restrictions', [ 'products' => $coupon->productList(), 'excludeProducts' => $coupon->excludeProductList(), 'categories' => Category::treeList(), ]); }); } private function usageLimits() { return tap(new Tab('usage_limits', trans('coupon::coupons.tabs.usage_limits')), function (Tab $tab) { $tab->weight(15); $tab->fields(['usage_limit_per_coupon', 'usage_limit_per_customer']); $tab->view('coupon::admin.coupons.tabs.usage_limits'); }); } }