VoucherType::class, 'discount_amount' => 'int', 'min_purchase' => 'int', 'max_discount' => 'int', 'quota' => 'int', 'available_count' => 'int', 'limit_per_user' => 'int', ]; } #[Scope] public function active(Builder $query): void { $query->whereDate('start_date', '<=', now()) ->where(function ($q) { $q->whereNull('end_date') ->orWhereDate('end_date', '>=', now()); }); } public function outlets(): BelongsToMany { return $this->belongsToMany(Outlet::class); } public function orders(): HasMany { return $this->hasMany(Order::class); } public function users(): BelongsToMany { return $this->belongsToMany(User::class); } }