*/ use HasFactory, Notifiable; /** * The attributes that are mass assignable. * * @var list */ protected $fillable = [ 'name', 'email', 'password', 'role_id', 'photo', 'fcm_token', 'phone', 'phone_verified_at', ]; /** * The attributes that should be hidden for serialization. * * @var list */ protected $hidden = [ 'password', 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } public function customer() { return $this->hasOne(Customer::class); } public function addresses() { return $this->hasMany(Address::class); } public function primary_address() { return $this->hasOne(Address::class)->where('is_primary', true); } public function getPhotoUrlAttribute() { return $this->photo ? (str_contains($this->photo, 'http') ? $this->photo : env('WMS_ASSET_URL') . '/' . $this->photo) : asset('img/photo-placeholder.png'); } }