diff --git a/.rubocop_todo/style/combinable_loops.yml b/.rubocop_todo/style/combinable_loops.yml
deleted file mode 100644
index 3f4430f18ba1a90dfec62f543f61b151fd94bce7..0000000000000000000000000000000000000000
--- a/.rubocop_todo/style/combinable_loops.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/CombinableLoops:
-  Exclude:
-    - 'ee/db/fixtures/development/30_customizable_cycle_analytics.rb'
-    - 'ee/lib/gitlab/audit/events/preloader.rb'
-    - 'ee/spec/finders/snippets_finder_spec.rb'
-    - 'spec/features/merge_request/user_suggests_changes_on_diff_spec.rb'
-    - 'spec/finders/packages/group_packages_finder_spec.rb'
-    - 'spec/requests/api/members_spec.rb'
diff --git a/ee/db/fixtures/development/30_customizable_cycle_analytics.rb b/ee/db/fixtures/development/30_customizable_cycle_analytics.rb
index 294ec4528dd2955a8089f19081e8edd4ec09a781..227b338b986a1efe803764734873007742e42b2e 100644
--- a/ee/db/fixtures/development/30_customizable_cycle_analytics.rb
+++ b/ee/db/fixtures/development/30_customizable_cycle_analytics.rb
@@ -174,9 +174,7 @@ def seed_merge_request_based_stages!
     merge_requests.pop(5).each do |mr|
       travel_to(get_date_after(mr.created_at))
       MergeRequests::CloseService.new(project: project, current_user: user).execute(mr)
-    end
 
-    merge_requests.pop(5).each do |mr|
       travel_to(get_date_after(mr.created_at))
       mr.metrics.update!(merged_at: Time.now)
       MergeRequestsClosingIssues.create!(issue: project.issues.sample, merge_request: mr)
diff --git a/ee/lib/gitlab/audit/events/preloader.rb b/ee/lib/gitlab/audit/events/preloader.rb
index a8b45eeebad50b1e54af13674727ba7583001ddf..284ec25cffde85951b5e685d516a44123275578c 100644
--- a/ee/lib/gitlab/audit/events/preloader.rb
+++ b/ee/lib/gitlab/audit/events/preloader.rb
@@ -19,6 +19,7 @@ def initialize(audit_events)
 
         def find_each(&block)
           @audit_events.each_batch(column: :created_at) do |relation|
+            # rubocop:disable Style/CombinableLoops -- BatchLoader must preload all associated records before yielding (https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169977#note_2175391750)
             relation.each do |audit_event|
               audit_event.lazy_author
               audit_event.entity
@@ -27,6 +28,7 @@ def find_each(&block)
             relation.each do |audit_event|
               yield(audit_event)
             end
+            # rubocop:enable Style/CombinableLoops
 
             BatchLoader::Executor.clear_current
           end
diff --git a/ee/spec/finders/snippets_finder_spec.rb b/ee/spec/finders/snippets_finder_spec.rb
index cf2886db1efd066baae4ab3754664fd216971842..185c32a5f00860d81dd6dd94d1a6ae752668b172 100644
--- a/ee/spec/finders/snippets_finder_spec.rb
+++ b/ee/spec/finders/snippets_finder_spec.rb
@@ -69,9 +69,7 @@
               private_project_snippet
             )
         end
-      end
 
-      [:guest, :reporter, :developer, :maintainer].each do |role|
         it 'returns all the authorized project snippets and authored personal ones' do
           project.add_role(user, role)
           other_project.add_role(user, role)
diff --git a/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb b/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb
index 6152d9f82598266c4b0f35b8bc4b6b3bead65b9f..24ef8fbc8d77de304acc048e9c1ff2b49b2b3223 100644
--- a/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb
+++ b/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb
@@ -135,6 +135,7 @@ def hash(path)
     end
 
     it 'can add and remove suggestions from a batch' do
+      # rubocop:disable Style/CombinableLoops -- "Add suggestion to batch" only exists with more than one suggestion
       files.each_with_index do |file, index|
         page.within("[id='#{file[:hash]}']") do
           find('.js-diff-more-actions').click
@@ -166,6 +167,7 @@ def hash(path)
             expect(page).to have_content("Apply #{index + 1} suggestions")
           end
         end
+        # rubocop:enable Style/CombinableLoops
       end
 
       page.within("[id='#{files[0][:hash]}']") do
diff --git a/spec/finders/packages/group_packages_finder_spec.rb b/spec/finders/packages/group_packages_finder_spec.rb
index c83ccd9f1071a22850758432f3cae50c25a940b0..143fef91e5df3870530d8a5174c0af9c9b4b1043 100644
--- a/spec/finders/packages/group_packages_finder_spec.rb
+++ b/spec/finders/packages/group_packages_finder_spec.rb
@@ -252,12 +252,10 @@ def self.package_types
     end
 
     context 'group has package of all types' do
-      package_types.each do |pt| # rubocop:disable RSpec/UselessDynamicDefinition -- `pt` used in `let`
-        let_it_be("package_#{pt}") { create("#{pt}_package", project: project) }
-      end
+      package_types.each do |type| # rubocop:disable RSpec/UselessDynamicDefinition -- `type` used in `let`
+        let_it_be("package_#{type}") { create("#{type}_package", project: project) }
 
-      package_types.each do |package_type|
-        it_behaves_like 'with package type', package_type
+        it_behaves_like 'with package type', type
       end
     end
 
diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb
index b8025db511494adabd5bc82a4b735fe57bcb02b1..48d8bd904e4e455cfdefefb74764f057827ff175 100644
--- a/spec/requests/api/members_spec.rb
+++ b/spec/requests/api/members_spec.rb
@@ -1045,6 +1045,7 @@ def request
     end
   end
 
+  # rubocop:disable Style/CombinableLoops -- new projects and groups must not be created for specs to pass
   [false, true].each do |all|
     it_behaves_like 'GET /:source_type/:id/members/(all)', 'project', all do
       let(:source) { project }
@@ -1064,6 +1065,7 @@ def request
       let(:source) { all ? create(:group, parent: group) : group }
     end
   end
+  # rubocop:enable Style/CombinableLoops
 
   describe 'POST /projects/:id/members' do
     context 'adding owner to project' do