'boolean', 'unit' => RawMaterialUnit::class, ]; } #[Scope] public function active(Builder $query): void { $query->where('is_active', true); } #[Scope] public function inactive(Builder $query): void { $query->where('is_active', false); } public function prices(): HasMany { return $this->hasMany(RawMaterialPrice::class); } public function ownerVerificationRequests(): MorphMany { return $this->morphMany(OwnerVerificationRequest::class, 'subject'); } public function pendingOwnerVerificationRequest(): MorphOne { return $this->morphOne(OwnerVerificationRequest::class, 'subject') ->where('status', OwnerVerificationStatus::PENDING) ->latestOfMany(); } public function unitAbbreviation(): Attribute { return Attribute::make( get: fn () => $this->unit->abbreviation(), ); } public function unitLabel(): Attribute { return Attribute::make( get: fn () => $this->unit->label(), ); } }