updateProfile method
Updates an existing profile with new settings.
profileId - ID of the profile to update
updatedProfile - Updated profile data
Throws an exception if profiles have not been loaded or if the profile ID doesn't exist.
Implementation
Future<void> updateProfile(String profileId, Profile updatedProfile) async {
  if (_profiles == null) {
    throw Exception('Launcher profiles not loaded');
  }
  if (!_profiles!.profiles.containsKey(profileId)) {
    throw Exception('Profile with ID $profileId not found');
  }
  final updatedProfiles = Map<String, Profile>.from(_profiles!.profiles);
  updatedProfiles[profileId] = updatedProfile;
  _profiles = LauncherProfiles(
    profiles: updatedProfiles,
    settings: _profiles!.settings,
    version: _profiles!.version,
  );
  if (_activeProfile != null && _activeProfile!.name == updatedProfile.name) {
    _activeProfile = updatedProfile;
  }
  await saveProfiles();
}