formatters = [ new RemittanceTagFormatter, new BbvaFormatter, ]; } /** * @return array{description: string, original_description: string|null} */ public function format(string $description, ?string $bankName): array { foreach ($this->formatters as $formatter) { if (! $formatter->matches($description, $bankName)) { continue; } $formatted = $formatter->format($description); return [ 'description' => $formatted, 'original_description' => $formatted !== $description ? $description : null, ]; } return ['description' => $description, 'original_description' => null]; } }