'Turkey', 'code' => 'TR', 'phone_code' => '+90', 'flag' => 'πŸ‡ΉπŸ‡·', 'cities' => ['Istanbul' => ['Beyoglu', 'Kadikoy', 'Besiktas'], 'Ankara' => ['Cankaya', 'Kecioren'], 'Izmir' => ['Konak', 'Karsiyaka']]], ['name' => 'United States', 'code' => 'US', 'phone_code' => '+1', 'flag' => 'πŸ‡ΊπŸ‡Έ', 'cities' => ['New York' => ['Manhattan', 'Brooklyn'], 'Los Angeles' => ['Hollywood', 'Venice'], 'Chicago' => ['Downtown', 'Midtown']]], ['name' => 'United Kingdom', 'code' => 'GB', 'phone_code' => '+44', 'flag' => 'πŸ‡¬πŸ‡§', 'cities' => ['London' => ['Westminster', 'Shoreditch'], 'Manchester' => ['City Centre'], 'Birmingham' => ['Jewellery Quarter']]], ['name' => 'Germany', 'code' => 'DE', 'phone_code' => '+49', 'flag' => 'πŸ‡©πŸ‡ͺ', 'cities' => ['Berlin' => ['Mitte', 'Prenzlauer Berg'], 'Munich' => ['Schwabing', 'Maxvorstadt']]], ['name' => 'France', 'code' => 'FR', 'phone_code' => '+33', 'flag' => 'πŸ‡«πŸ‡·', 'cities' => ['Paris' => ['Marais', 'Montmartre'], 'Lyon' => ['Presquile']]], ]; foreach ($locations as $countryData) { $cities = $countryData['cities']; unset($countryData['cities']); $country = Country::firstOrCreate(['code' => $countryData['code']], $countryData); foreach ($cities as $cityName => $districts) { $city = City::firstOrCreate(['name' => $cityName, 'country_id' => $country->id]); foreach ($districts as $districtName) { District::firstOrCreate(['name' => $districtName, 'city_id' => $city->id]); } } } } }