#34905 [Bug]: Router model_group is dropped from SpendLogs when pre-call guardrails add litellm_metadata
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
When a routed request runs a unified `pre_call` guardrail, the spend log can lose the Router `model_group` value.
The request can contain two metadata dictionaries:
- `metadata`, where the Router records `model_group` and deployment information. - `litellm_metadata`, which the unified guardrail may create for LiteLLM authentication metadata.
During spend payload construction, `get_litellm_metadata_from_kwargs()` prefers `litellm_metadata`. Its merge helper currently copies only keys containing `user_api_key` from `metadata`, so `model_group` is dropped. The standard logging payload still contains the correct model group, but the resulting `SpendLogsPayload.model_group` is empty.
Expected behavior: `SpendLogsPayload.model_group` should preserve the Router model-group name whenever both metadata dictionaries are present.
Actual behavior: `SpendLogsPayload.model_group` is `""`, which makes spend aggregation by model group incomplete.
### Steps to Reproduce
1. Configure a LiteLLM Router model group with a public name different from its provi…