'boolean', 'type' => BankAccountType::class, 'access_token' => 'encrypted', ]; protected $appends = [ 'masked_number', ]; public function institution(): BelongsTo { return $this->belongsTo(Institution::class, 'institution_id'); } public function bankAccount(): BelongsTo { return $this->belongsTo(BankAccount::class, 'bank_account_id'); } public function account(): HasOneThrough { return $this->hasOneThrough( Account::class, BankAccount::class, 'id', 'accountable_id', 'bank_account_id', 'id' ); } protected function maskedNumber(): Attribute { return Attribute::get(static function (mixed $value, array $attributes): ?string { return $attributes['mask'] ? '•••• ' . substr($attributes['mask'], -4) : null; }); } }