'datetime', 'last_password_change_at' => 'datetime', 'status' => UserStatus::class, ]; } #[Scope] protected function active(Builder $query): void { $query->where('status', UserStatus::ACTIVE); } #[Scope] protected function withoutDeveloper(Builder $query): void { $query->whereDoesntHave('roles', function ($q) { $q->where('name', 'Developer'); }); } public function employee(): HasOne { return $this->hasOne(Employee::class); } public function customer(): HasOne { return $this->hasOne(Customer::class); } public function membership(): HasOne { return $this->hasOne(Membership::class); } public function referralCode(): HasOne { return $this->hasOne(ReferralCode::class); } public function referralUsage(): HasOne { return $this->hasOne(ReferralUsage::class); } public function outlets(): BelongsToMany { return $this->belongsToMany(Outlet::class); } public function articles(): HasMany { return $this->hasMany(Article::class, 'author_id'); } public function payrolls(): HasMany { return $this->hasMany(Payroll::class); } public function expenses(): HasMany { return $this->hasMany(Expense::class); } public function orders(): HasMany { return $this->hasMany(Order::class); } public function items(): HasMany { return $this->hasMany(OrderItem::class); } public function purchaseItems(): HasMany { return $this->hasMany(PurchaseItem::class); } public function payments(): HasMany { return $this->hasMany(Payment::class); } public function salaryHistories(): HasMany { return $this->hasMany(SalaryHistory::class); } public function priceRequests(): HasMany { return $this->hasMany(PriceRequest::class); } public function vouchers(): BelongsToMany { return $this->belongsToMany(Voucher::class); } public function pointRecords(): HasMany { return $this->hasMany(PointRecord::class); } public function stockOpnameItems(): HasMany { return $this->hasMany(StockOpnameItem::class); } public function pushNotifications(): HasMany { return $this->hasMany(PushNotification::class); } public function broadcasts(): HasMany { return $this->hasMany(Broadcast::class); } }