MoneyCast::class, 'import_transactions' => 'boolean', 'type' => BankAccountType::class, 'access_token' => 'encrypted', 'last_imported_at' => 'datetime', ]; 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'); } protected function maskedNumber(): Attribute { return Attribute::get(static function (mixed $value, array $attributes): ?string { return $attributes['mask'] ? '•••• ' . substr($attributes['mask'], -4) : null; }); } }