OrderStatus::class, 'notify_at' => 'datetime', 'treat_at' => 'datetime', 'next_treat_at' => 'datetime', 'origin_price' => 'float', 'sell_price' => 'float', 'images' => 'json', ]; public function patient() { return $this->belongsTo(Patient::class, 'patient_id'); } public function user() { return $this->belongsTo(User::class, 'user_id'); } public function type() { return $this->belongsTo(Keyword::class, 'type_id'); } public function doctor() { return $this->belongsTo(AdminUser::class, 'doctor_id'); } public function inviter() { return $this->belongsTo(AdminUser::class, 'inviter_id'); } public function saler() { return $this->belongsTo(AdminUser::class, 'saler_id'); } public function notifyUser() { return $this->belongsTo(AdminUser::class, 'notify_user_id'); } public function creator() { return $this->belongsTo(AdminUser::class, 'creator_id'); } public function illnessType() { return $this->belongsTo(Keyword::class, 'illness_type_id'); } public function scopeSort($q) { return $q->orderBy('treat_at', 'desc'); } protected function orderStatusText(): Attribute { return Attribute::make( get: fn () => $this->order_status ? $this->order_status->text() : '', ); } }