Bug: bug: sample data generation with profile id



When trying to generate sample data for users with multiple business profiles, we are getting 500 if the profile id is not passed in the payload.
diff --git a/crates/router/src/utils/user/sample_data.rs b/crates/router/src/utils/user/sample_data.rs
index dcf635595e0..3fa2a10629e 100644
--- a/crates/router/src/utils/user/sample_data.rs
+++ b/crates/router/src/utils/user/sample_data.rs
@@ -52,7 +52,7 @@ pub async fn generate_sample_data(
 
     let business_label_default = merchant_parsed_details.first().map(|x| x.business.clone());
 
-    let profile_id = crate::core::utils::get_profile_id_from_business_details(
+    let profile_id = match crate::core::utils::get_profile_id_from_business_details(
         business_country_default,
         business_label_default.as_ref(),
         &merchant_from_db,
@@ -61,8 +61,25 @@ pub async fn generate_sample_data(
         false,
     )
     .await
-    .change_context(SampleDataError::InternalServerError)
-    .attach_printable("Failed to get business profile")?;
+    {
+        Ok(id) => id.clone(),
+        Err(error) => {
+            router_env::logger::error!(
+                "Profile ID not found in business details. Attempting to fetch from the database {error:?}"
+            );
+
+            state
+                .store
+                .list_business_profile_by_merchant_id(&merchant_id)
+                .await
+                .change_context(SampleDataError::InternalServerError)
+                .attach_printable("Failed to get business profile")?
+                .first()
+                .ok_or(SampleDataError::InternalServerError)?
+                .profile_id
+                .clone()
+        }
+    };
 
     // 10 percent payments should be failed
     #[allow(clippy::as_conversions)]

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
Currently for user with multiple business profiles. We are getting 500 if the profile id is not passed in the payload. Therefore, need to fetch the profile_id (the first one) from list of business profiles, for the sample data generation. 

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
Getting 500, for users with multiple business profiles for sample data generation.

## How did you test it?
Singup
```
curl --location 'http://localhost:8080/user/signup' \
--header 'Content-Type: application/json' \
--header 'Cookie: token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMWZjNzgyOTUtM2JiMy00OGJjLThlZDgtNzFjMzVjMzMxYWU2IiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNjk3NzE2ODcwIiwicm9sZV9pZCI6Im1lcmNoYW50X2FkbWluIiwiZXhwIjoxNjk3ODg5NjcxLCJvcmdfaWQiOiJvcmdfejQ5ZExMeTdmbllUODN5TDY3clEifQ.CJzEQ2qbhn-qUiiVBSdvCJiLvWp-5wCF9R54gth6QbQ' \
--data-raw '{
    "email": "profile_test@juspay.in",
    "password": "Test@12345",
    "country": "IN"
}'
```
Creating New business profile:
pass current merchant_id for the endpoint
```
curl --location 'http://localhost:8080/account/merchant_1705399107/business_profile' \
--header 'Content-Type: application/json' \
--header 'Cookie: token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMWZjNzgyOTUtM2JiMy00OGJjLThlZDgtNzFjMzVjMzMxYWU2IiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNjk3NzE2ODcwIiwicm9sZV9pZCI6Im1lcmNoYW50X2FkbWluIiwiZXhwIjoxNjk3ODg5NjcxLCJvcmdfaWQiOiJvcmdfejQ5ZExMeTdmbllUODN5TDY3clEifQ.CJzEQ2qbhn-qUiiVBSdvCJiLvWp-5wCF9R54gth6QbQ' \
--header 'Authorization: Bearer JWT' \
--data '{
    "profile_name": "default5"
}'
```
Generate Sample Data:
```
curl --location 'http://localhost:8080/user/sample_data' \
--header 'Content-Type: application/json' \
--header 'Cookie: token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMWZjNzgyOTUtM2JiMy00OGJjLThlZDgtNzFjMzVjMzMxYWU2IiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNjk3NzE2ODcwIiwicm9sZV9pZCI6Im1lcmNoYW50X2FkbWluIiwiZXhwIjoxNjk3ODg5NjcxLCJvcmdfaWQiOiJvcmdfejQ5ZExMeTdmbllUODN5TDY3clEifQ.CJzEQ2qbhn-qUiiVBSdvCJiLvWp-5wCF9R54gth6QbQ' \
--header 'Authorization: Bearer JWT' \
--data '{
}'
```
Response will be 200



## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable
