attributes['code'] = !empty($value) ? $value : Str::upper(Str::random('6')); } public function getMetaAttribute() { $orgMeta = []; foreach ($this->metas as $meta) { $orgMeta[$meta->type] = $meta->value; } return (object) $orgMeta; } public function addresses() { return $this->morphMany(Address::class, 'addressable'); } public function currentAddress() { return $this->belongsTo(Address::class, 'main_address_id'); } public function parent() { return $this->belongsTo(Organization::class, 'part_of', 'id'); } public function metas() { return $this->morphMany(Meta::class, 'metaable'); } public function practitionerRoles() { return $this->hasMany(PractitionerRole::class, 'organization_id'); } }