$parameter) { $placeholders[] = '{' . $placeholder . '}'; foreach (['name','type'] as $requiredField) { if (!isset($parameter[$requiredField]) || !is_string($parameter[$requiredField])) { throw new \InvalidArgumentException("Invalid rich object, {$requiredField} field is missing"); } } $replacements[] = match($parameter['type']) { 'user' => '@' . $parameter['name'], 'file' => $parameter['path'] ?? $parameter['name'], default => $parameter['name'], }; } return str_replace($placeholders, $replacements, $message); } }