*/ protected $fillable = [ 'person_id', 'name', 'email', 'password', 'phone', 'otp', 'otp_created_at', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', 'otp_created_at' => 'datetime' ]; public $appends = [ 'meta' ]; public function getMetaAttribute() { $orgMeta = []; foreach ($this->metas as $meta) { $orgMeta[$meta->type] = $meta->value; } return (object) $orgMeta; } public function managedCorporates() { return $this->belongsToMany(Corporate::class, 'corporate_manager', 'user_id', 'corporate_id'); } public function metas() { return $this->morphMany(Meta::class, 'metaable'); } public function person() { return $this->belongsTo(Person::class, 'person_id'); } }