diff --git a/ee/spec/finders/approval_rules/group_finder_spec.rb b/ee/spec/finders/approval_rules/group_finder_spec.rb
index 1d04ecc37b30bfec628a6e74c5d09f46827b0684..2c07e1075845c389a7757e2be166854d91c38f89 100644
--- a/ee/spec/finders/approval_rules/group_finder_spec.rb
+++ b/ee/spec/finders/approval_rules/group_finder_spec.rb
@@ -5,20 +5,30 @@
 RSpec.describe ApprovalRules::GroupFinder, feature_category: :source_code_management do
   let_it_be_with_reload(:rule) { create(:approval_project_rule) }
   let_it_be(:user) { create(:user) }
+  let_it_be(:organization) { create(:organization) }
+
+  let_it_be(:public_group) { create(:group, name: 'public_group', organization: organization) }
+  let_it_be(:private_inaccessible_group) do
+    create(:group, :private, name: 'private_inaccessible_group', organization: organization)
+  end
+
+  let_it_be(:private_accessible_group) do
+    create(:group, :private, name: 'private_accessible_group', owners: user, organization: organization)
+  end
 
-  let_it_be(:public_group) { create(:group, name: 'public_group') }
-  let_it_be(:private_inaccessible_group) { create(:group, :private, name: 'private_inaccessible_group') }
-  let_it_be(:private_accessible_group) { create(:group, :private, name: 'private_accessible_group', owners: user) }
   let_it_be(:private_accessible_subgroup) do
     create(:group, :private, parent: private_accessible_group, name: 'private_accessible_subgroup')
   end
 
-  let_it_be(:private_shared_group) { create(:group, :private, name: 'private_shared_group') }
+  let_it_be(:private_shared_group) do
+    create(:group, :private, name: 'private_shared_group', organization: organization)
+  end
+
   let_it_be(:private_shared_group_link) do
     create(:project_group_link, project: rule.project, group: private_shared_group)
   end
 
-  let_it_be(:public_shared_group) { create(:group, name: 'public_shared_group') }
+  let_it_be(:public_shared_group) { create(:group, name: 'public_shared_group', organization: organization) }
   let_it_be(:public_shared_group_link) do
     create(:project_group_link, project: rule.project, group: public_shared_group)
   end
@@ -106,7 +116,13 @@
         rule.reload
         RequestStore.clear!
 
-        rule.groups << create(:group, :private, parent: private_accessible_group, name: 'private_accessible_subgroup2')
+        rule.groups << create(
+          :group,
+          :private,
+          parent: private_accessible_group,
+          name: 'private_accessible_subgroup2',
+          organization: organization
+        )
 
         expect { described_class.new(rule, user).visible_groups }.not_to exceed_query_limit(control)
       end
diff --git a/ee/spec/finders/epics_finder_spec.rb b/ee/spec/finders/epics_finder_spec.rb
index 55e80dc956595f2caf38866255554bb6e4aa09c0..8891ad391c674f1dca5c629976c3e2febc03f46d 100644
--- a/ee/spec/finders/epics_finder_spec.rb
+++ b/ee/spec/finders/epics_finder_spec.rb
@@ -59,8 +59,8 @@ def epics(params = {})
           expect(epics).to contain_exactly(epic1, epic2, epic3, epic5)
         end
 
-        it 'does not execute more than 5 SQL queries' do
-          expect { epics.to_a }.not_to exceed_all_query_limit(5)
+        it 'does not execute more than 6 SQL queries' do
+          expect { epics.to_a }.not_to exceed_all_query_limit(6)
         end
 
         context 'sorting' do
@@ -286,18 +286,18 @@ def epics(params = {})
             end
           end
 
-          it 'does not execute more than 5 SQL queries' do
-            expect { epics.to_a }.not_to exceed_all_query_limit(5)
+          it 'does not execute more than 6 SQL queries' do
+            expect { epics.to_a }.not_to exceed_all_query_limit(6)
           end
 
-          it 'does not execute more than 6 SQL queries when checking namespace plans', :saas do
+          it 'does not execute more than 7 SQL queries when checking namespace plans', :saas do
             allow(Gitlab::CurrentSettings)
               .to receive(:should_check_namespace_plan?)
               .and_return(true)
 
             create(:gitlab_subscription, :ultimate, namespace: group)
 
-            expect { epics.to_a }.not_to exceed_all_query_limit(6)
+            expect { epics.to_a }.not_to exceed_all_query_limit(7)
           end
         end
 
diff --git a/ee/spec/requests/api/graphql/current_user/groups_query_spec.rb b/ee/spec/requests/api/graphql/current_user/groups_query_spec.rb
index 03ba56e3309b87f07088985579a8f26406a42119..7a6c922a3836a2a41faae25fc04a13035f742dbe 100644
--- a/ee/spec/requests/api/graphql/current_user/groups_query_spec.rb
+++ b/ee/spec/requests/api/graphql/current_user/groups_query_spec.rb
@@ -6,11 +6,12 @@
   include GraphqlHelpers
 
   let_it_be(:user) { create(:user) }
-  let_it_be(:root_parent) { create(:group, :private, name: 'root-1', path: 'root-1') }
-  let_it_be(:guest_group) { create(:group, name: 'public guest', path: 'public-guest', guests: user) }
-  let_it_be(:private_maintainer_group) { create(:group, :private, name: 'b private maintainer', path: 'b-private-maintainer', parent: root_parent, maintainers: user) }
-  let_it_be(:private_developer_group) { create(:group, :private, project_creation_level: nil, name: 'c public developer', path: 'c-public-developer', developers: user) }
-  let_it_be(:public_maintainer_group) { create(:group, :private, name: 'a public maintainer', path: 'a-public-maintainer', maintainers: user) }
+  let_it_be(:organization) { create(:organization) }
+  let_it_be(:root_parent) { create(:group, :private, name: 'root-1', path: 'root-1', organization: organization) }
+  let_it_be(:guest_group) { create(:group, name: 'public guest', path: 'public-guest', guests: user, organization: organization) }
+  let_it_be(:private_maintainer_group) { create(:group, :private, name: 'b private maintainer', path: 'b-private-maintainer', parent: root_parent, maintainers: user, organization: organization) }
+  let_it_be(:private_developer_group) { create(:group, :private, project_creation_level: nil, name: 'c public developer', path: 'c-public-developer', developers: user, organization: organization) }
+  let_it_be(:public_maintainer_group) { create(:group, :private, name: 'a public maintainer', path: 'a-public-maintainer', maintainers: user, organization: organization) }
 
   let(:group_arguments) { {} }
   let(:current_user) { user }
@@ -29,11 +30,11 @@
     it 'avoids N+1 queries', :request_store do
       control = ActiveRecord::QueryRecorder.new { post_graphql(query, current_user: current_user) }
 
-      create(:group, :private, maintainers: current_user)
-      create(:group, :private, parent: private_maintainer_group)
+      create(:group, :private, maintainers: current_user, organization: organization)
+      create(:group, :private, parent: private_maintainer_group, organization: organization)
 
       another_root = create(:group, :private, name: 'root-3', path: 'root-3')
-      create(:group, :private, parent: another_root, maintainers: current_user)
+      create(:group, :private, parent: another_root, maintainers: current_user, organization: organization)
 
       expect { post_graphql(query, current_user: current_user) }.not_to exceed_query_limit(control)
     end
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb
index 51e14d90afc19fcba5c8c91eef890e4625e2c23c..51d76e3b5d5e7ba8762a701158bea5cb612edb7c 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/add_on_eligible_users_spec.rb
@@ -299,6 +299,7 @@
 
       before do
         other_add_on_purchase.namespace.add_owner(current_user)
+        other_add_on_purchase.namespace.update!(organization: add_on_purchase.namespace.organization)
       end
 
       it "avoids N+1 database queries", :request_store do
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb
index b5b18f7b8b891dfcd98bb7c2c455f5bda72daf47..19020a09142305af4d55eed6dffc45395e88ad44 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/create_spec.rb
@@ -280,6 +280,7 @@
 
       before_all do
         additional_purchase.namespace.add_owner(current_user)
+        additional_purchase.namespace.update!(organization: add_on_purchase.namespace.organization)
       end
 
       it_behaves_like 'avoids N+1 database queries'
diff --git a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb
index 87004f75e5419818802efc5749780fb9040ec4bb..acc03dc92cea2c1233b01502513b011a986676aa 100644
--- a/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb
+++ b/ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb
@@ -6,7 +6,8 @@
   include GraphqlHelpers
 
   let_it_be(:current_user) { create(:user) }
-  let_it_be(:namespace) { create(:group) }
+  let_it_be(:organization) { create(:organization) }
+  let_it_be(:namespace) { create(:group, organization: organization) }
   let_it_be(:add_on_purchase) { create(:gitlab_subscription_add_on_purchase, namespace: namespace) }
   let_it_be(:remove_user) { create(:user) }
 
@@ -74,6 +75,11 @@
     before do
       additional_purchase_1.namespace.add_owner(current_user)
       additional_purchase_2.namespace.add_owner(current_user)
+
+      if add_on_purchase.namespace
+        additional_purchase_1.namespace.update!(organization: add_on_purchase.namespace.organization)
+        additional_purchase_2.namespace.update!(organization: add_on_purchase.namespace.organization)
+      end
     end
 
     it "avoids N+1 database queries", :request_store do
@@ -213,10 +219,14 @@
   end
 
   context 'when the namespace is nil' do
-    before_all  do
+    before do
       add_on_purchase.update!(namespace_id: nil)
     end
 
+    after do
+      add_on_purchase.update!(namespace_id: namespace.id)
+    end
+
     context 'when current_user is admin' do
       let(:current_user) { create(:admin) }
       let(:namespace_path) { nil }
diff --git a/ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb b/ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb
index 275d0b686f08758f52e6c1519624ac28d13be7fb..878f3b4667836bd3683bbede34d45bff194a25cf 100644
--- a/ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb
+++ b/ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb
@@ -8,8 +8,9 @@
   let(:new_epic_group) { nil }
 
   let_it_be(:current_user) { create(:user) }
-  let_it_be(:group) { create(:group, developers: current_user) }
-  let_it_be(:project) { create(:project, group: group, developers: current_user) }
+  let_it_be(:organization) { create(:organization) }
+  let_it_be(:group) { create(:group, developers: current_user, organization: organization) }
+  let_it_be(:project) { create(:project, group: group, developers: current_user, organization: organization) }
   let_it_be(:issue) { create(:issue, project: project) }
   let_it_be(:user) { create(:user) }
 
@@ -81,7 +82,7 @@ def mutation_response
   end
 
   context 'when epic has to be in a different group' do
-    let(:new_epic_group) { create(:group) }
+    let(:new_epic_group) { create(:group, organization: organization) }
 
     context 'when user cannot create epic in new group' do
       it 'does not promote the issue to epic' do
@@ -94,7 +95,7 @@ def mutation_response
     end
 
     context 'when user can create epic in new group' do
-      let(:queries_count_threshold) { 129 }
+      let(:queries_count_threshold) { 131 }
 
       before do
         new_epic_group.add_developer(current_user)
diff --git a/ee/spec/requests/api/graphql/namespace/compliance_frameworks_spec.rb b/ee/spec/requests/api/graphql/namespace/compliance_frameworks_spec.rb
index 227870c1d24da51e79e3128c24426a8ac409a6dd..53f065bcb038feaa37f9129d3977f8634578fece 100644
--- a/ee/spec/requests/api/graphql/namespace/compliance_frameworks_spec.rb
+++ b/ee/spec/requests/api/graphql/namespace/compliance_frameworks_spec.rb
@@ -175,7 +175,7 @@
     end
 
     context 'when querying multiple namespaces' do
-      let(:group) { create(:group) }
+      let(:group) { create(:group, organization: namespace.organization) }
       let(:sox_framework) { create(:compliance_framework, namespace: group, name: 'SOX') }
       let(:multiple_namespace_query) do
         <<~QUERY
diff --git a/spec/finders/concerns/finder_with_group_hierarchy_spec.rb b/spec/finders/concerns/finder_with_group_hierarchy_spec.rb
index 27f5192176d7c83d2f55f11749f30dffd70e0f0f..2ea3fa1a349e15885877a04a4f4705cca3b7b9cf 100644
--- a/spec/finders/concerns/finder_with_group_hierarchy_spec.rb
+++ b/spec/finders/concerns/finder_with_group_hierarchy_spec.rb
@@ -35,10 +35,11 @@ def read_permission
     end
   end
 
-  let_it_be(:parent_group) { create(:group) }
-  let_it_be(:group) { create(:group, parent: parent_group) }
-  let_it_be(:private_group) { create(:group, :private) }
-  let_it_be(:private_subgroup) { create(:group, :private, parent: private_group) }
+  let_it_be(:organization) { create(:organization) }
+  let_it_be(:parent_group) { create(:group, organization: organization) }
+  let_it_be(:group) { create(:group, parent: parent_group, organization: organization) }
+  let_it_be(:private_group) { create(:group, :private, organization: organization) }
+  let_it_be(:private_subgroup) { create(:group, :private, parent: private_group, organization: organization) }
 
   let!(:user) { create(:user) }
 
diff --git a/spec/graphql/resolvers/group_labels_resolver_spec.rb b/spec/graphql/resolvers/group_labels_resolver_spec.rb
index 2e583a1703df5535a6dbe55b5491f5744546a23d..c68498173f13f41b2300b74350e4665490ba0853 100644
--- a/spec/graphql/resolvers/group_labels_resolver_spec.rb
+++ b/spec/graphql/resolvers/group_labels_resolver_spec.rb
@@ -8,10 +8,11 @@
   using RSpec::Parameterized::TableSyntax
 
   let_it_be(:current_user) { create(:user) }
-  let_it_be(:group, reload: true) { create(:group, :private) }
-  let_it_be(:subgroup, reload: true) { create(:group, :private, parent: group) }
-  let_it_be(:sub_subgroup, reload: true) { create(:group, :private, parent: subgroup) }
-  let_it_be(:project, reload: true) { create(:project, :private, group: sub_subgroup) }
+  let_it_be(:organization) { create(:organization) }
+  let_it_be(:group, reload: true) { create(:group, :private, organization: organization) }
+  let_it_be(:subgroup, reload: true) { create(:group, :private, parent: group, organization: organization) }
+  let_it_be(:sub_subgroup, reload: true) { create(:group, :private, parent: subgroup, organization: organization) }
+  let_it_be(:project, reload: true) { create(:project, :private, group: sub_subgroup, organization: organization) }
   let_it_be(:label1) { create(:label, project: project, name: 'project feature') }
   let_it_be(:label2) { create(:label, project: project, name: 'new project feature') }
   let_it_be(:group_label1) { create(:group_label, group: group, name: 'group feature') }
@@ -69,8 +70,8 @@
           ActiveRecord::QueryRecorder.new { resolve_labels(group, params).to_a }
         end
 
-        another_project = create(:project, :private, group: sub_subgroup)
-        another_subgroup = create(:group, :private, parent: group)
+        another_project = create(:project, :private, group: sub_subgroup, organization: organization)
+        another_subgroup = create(:group, :private, parent: group, organization: organization)
         create(:label, project: another_project, name: 'another project feature')
         create(:group_label, group: another_subgroup, name: 'another group feature')
 
diff --git a/spec/requests/api/graphql/current_user/groups_query_spec.rb b/spec/requests/api/graphql/current_user/groups_query_spec.rb
index c7bb87f4548758a869ddcf9001af5978f6e3646e..13161436c98be6f40d6ba483332668462b762452 100644
--- a/spec/requests/api/graphql/current_user/groups_query_spec.rb
+++ b/spec/requests/api/graphql/current_user/groups_query_spec.rb
@@ -5,13 +5,14 @@
 RSpec.describe 'Query current user groups', feature_category: :groups_and_projects do
   include GraphqlHelpers
 
+  let_it_be(:organization) { create(:organization) }
   let_it_be(:user) { create(:user) }
-  let_it_be(:root_group) { create(:group, name: 'Root group', path: 'root-group') }
-  let_it_be(:guest_group) { create(:group, name: 'public guest', path: 'public-guest', guests: user) }
-  let_it_be(:private_maintainer_group) { create(:group, :private, name: 'b private maintainer', path: 'b-private-maintainer', parent: root_group, maintainers: user) }
-  let_it_be(:public_developer_group) { create(:group, project_creation_level: nil, name: 'c public developer', path: 'c-public-developer', developers: user) }
-  let_it_be(:public_maintainer_group) { create(:group, name: 'a public maintainer', path: 'a-public-maintainer', parent: root_group, maintainers: user) }
-  let_it_be(:public_owner_group) { create(:group, name: 'a public owner', path: 'a-public-owner', owners: user) }
+  let_it_be(:root_group) { create(:group, name: 'Root group', path: 'root-group', organization: organization) }
+  let_it_be(:guest_group) { create(:group, name: 'public guest', path: 'public-guest', guests: user, organization: organization) }
+  let_it_be(:private_maintainer_group) { create(:group, :private, name: 'b private maintainer', path: 'b-private-maintainer', parent: root_group, maintainers: user, organization: organization) }
+  let_it_be(:public_developer_group) { create(:group, project_creation_level: nil, name: 'c public developer', path: 'c-public-developer', developers: user, organization: organization) }
+  let_it_be(:public_maintainer_group) { create(:group, name: 'a public maintainer', path: 'a-public-maintainer', parent: root_group, maintainers: user, organization: organization) }
+  let_it_be(:public_owner_group) { create(:group, name: 'a public owner', path: 'a-public-owner', owners: user, organization: organization) }
 
   let(:group_arguments) { {} }
   let(:current_user) { user }
@@ -37,7 +38,7 @@
   it 'avoids N+1 queries', :request_store do
     control = ActiveRecord::QueryRecorder.new { post_graphql(query, current_user: current_user) }
 
-    new_group = create(:group, :private)
+    new_group = create(:group, :private, organization: organization)
     new_group.add_maintainer(current_user)
 
     expect { post_graphql(query, current_user: current_user) }.not_to exceed_query_limit(control)