'encrypted', 'secret_key' => 'encrypted', 'webhook_secret' => 'encrypted', 'is_active' => 'boolean', 'metadata' => 'array', ]; } public function isConfigured(): bool { if (! $this->is_active) { return false; } $public = trim((string) $this->public_key); $secret = trim((string) $this->secret_key); return match ($this->provider) { self::PROVIDER_PAYSTACK => str_starts_with($public, 'pk_') && str_starts_with($secret, 'sk_'), self::PROVIDER_FLUTTERWAVE => $public !== '' && $secret !== '', self::PROVIDER_HUBTEL => $public !== '' && $secret !== '', default => false, }; } }