diff --git a/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb
index 5786b15508ad950a3058435d25ab96117ef0a642..8e2ab12c5d917662b9f04bb635616402574fbe8b 100644
--- a/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb
+++ b/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb
@@ -16,13 +16,12 @@ module QA
         end
 
         let(:merge_request) do
-          Resource::MergeRequest.fabricate_via_api! do |merge_request|
-            merge_request.project = project
-            merge_request.description = 'Simple MR for a simple test'
-            merge_request.target_new_branch = false
-            merge_request.file_name = 'new_file.txt'
-            merge_request.file_content = 'Simple file for a simple MR'
-          end
+          create(:merge_request,
+            project: project,
+            description: 'Simple MR for a simple test',
+            target_new_branch: false,
+            file_name: 'new_file.txt',
+            file_content: 'Simple file for a simple MR')
         end
 
         before do
diff --git a/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb
index 065f86452bbfcb1bd34911353bf25bcf40222ef7..476bdcf6868e05914f1f9a7cd206bb728c657e19 100644
--- a/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb
@@ -7,17 +7,16 @@ module QA
 
       let(:project) { create(:project, :private, name: 'project-with-registry', template_name: 'express') }
       let(:project_deploy_token) do
-        Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token|
-          deploy_token.name = 'registry-deploy-token'
-          deploy_token.project = project
-          deploy_token.scopes = %w[
+        create(:project_deploy_token,
+          name: 'registry-deploy-token',
+          project: project,
+          scopes: %w[
             read_repository
             read_package_registry
             write_package_registry
             read_registry
             write_registry
-          ]
-        end
+          ])
       end
 
       let!(:runner) do
diff --git a/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb b/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb
index b37d06e2223733f86e5c99b105e449f7899d7a81..1276a2019d5a8817e72a93eed5cbe6ac80c94531 100644
--- a/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb
@@ -17,14 +17,10 @@ module QA
       end
 
       let(:group_deploy_token) do
-        Resource::GroupDeployToken.fabricate_via_api! do |deploy_token|
-          deploy_token.name = 'dp-group-deploy-token'
-          deploy_token.group = project.group
-          deploy_token.scopes = %w[
-            read_registry
-            write_registry
-          ]
-        end
+        create(:group_deploy_token,
+          name: 'dp-group-deploy-token',
+          group: project.group,
+          scopes: %w[read_registry write_registry])
       end
 
       let(:personal_access_token) { Runtime::Env.personal_access_token }
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb
index f781ad0df2f87a844c6d92af31e27f60163df60a..26dfdae053876c85402034d54770b0bebbedfb2a 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb
@@ -14,15 +14,14 @@ module QA
       let(:package_type) { 'maven' }
 
       let(:group_deploy_token) do
-        Resource::GroupDeployToken.fabricate_via_api! do |deploy_token|
-          deploy_token.name = 'maven-group-deploy-token'
-          deploy_token.group = package_project.group
-          deploy_token.scopes = %w[
+        create(:group_deploy_token,
+          name: 'maven-group-deploy-token',
+          group: package_project.group,
+          scopes: %w[
             read_repository
             read_package_registry
             write_package_registry
-          ]
-        end
+          ])
       end
 
       context 'via maven' do
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb
index c7ba83677c7e66d995c9014d875dba0ef6c76738..51279bb32dc45f0fc2607f470324e7789ec880ee 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb
@@ -32,15 +32,14 @@ module QA
       end
 
       let(:project_deploy_token) do
-        Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token|
-          deploy_token.name = 'package-deploy-token'
-          deploy_token.project = project
-          deploy_token.scopes = %w[
+        create(:project_deploy_token,
+          name: 'package-deploy-token',
+          project: project,
+          scopes: %w[
             read_repository
             read_package_registry
             write_package_registry
-          ]
-        end
+          ])
       end
 
       let(:project_inbound_job_token_disabled) do
diff --git a/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb b/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb
index 426f32fe4dc48dc1eb48f54d4d529a70c9d8c8a7..5d33ee5cd9a0d07314f81d0bd73ecefc85de25d3 100644
--- a/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb
+++ b/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb
@@ -10,11 +10,10 @@ module QA
         deploy_token_name = 'deploy token name'
         one_week_from_now = Date.today + 7
 
-        deploy_token = Resource::ProjectDeployToken.fabricate_via_api! do |resource|
-          resource.name = deploy_token_name
-          resource.expires_at = one_week_from_now
-          resource.scopes = %w[read_repository]
-        end
+        deploy_token = create(:project_deploy_token,
+          name: deploy_token_name,
+          expires_at: one_week_from_now,
+          scopes: %w[read_repository])
 
         expect(deploy_token.username.length).to be > 0
         expect(deploy_token.token.length).to be > 0
diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb
index 032b44c586aeb5156ba69bb3453ca755a4d2b376..0907633d444b8b7161bd68348fd0c833b2933c6a 100644
--- a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb
+++ b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb
@@ -86,12 +86,11 @@ module QA
 
       def create_scan_execution_policy
         branch_name = scan_execution_policy_commit.api_response[:branch]
-        Resource::MergeRequest.fabricate_via_api! do |merge_request|
-          merge_request.no_preparation = true
-          merge_request.project = policy_project
-          merge_request.target_new_branch = false
-          merge_request.source_branch = branch_name
-        end.merge_via_api!
+        create(:merge_request,
+          :no_preparation,
+          project: policy_project,
+          target_new_branch: false,
+          source_branch: branch_name).merge_via_api!
       end
 
       def pipeline_has_a_job?
@@ -134,12 +133,11 @@ def create_commit(branch_name)
       end
 
       def create_test_mr
-        Resource::MergeRequest.fabricate_via_api! do |merge_request|
-          merge_request.no_preparation = true
-          merge_request.project = project
-          merge_request.target_new_branch = false
-          merge_request.source_branch = commit_branch
-        end
+        create(:merge_request,
+          :no_preparation,
+          project: project,
+          target_new_branch: false,
+          source_branch: commit_branch)
       end
     end
   end
diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb
index 5d52e90510ebf3e3061d3be6a1f910926bd986ff..0098bdbbe36e61c84f1c13f4e1ba955adb44ee58 100644
--- a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb
+++ b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb
@@ -108,22 +108,20 @@ module QA
       end
 
       def create_test_mr
-        Resource::MergeRequest.fabricate_via_api! do |merge_request|
-          merge_request.no_preparation = true
-          merge_request.project = project
-          merge_request.target_new_branch = false
-          merge_request.source_branch = commit_branch
-        end
+        create(:merge_request,
+          :no_preperation,
+          project: project,
+          target_new_branch: false,
+          source_branch: commit_branch)
       end
 
       def create_scan_result_policy
         branch_name = scan_result_policy_commit.api_response[:branch]
-        Resource::MergeRequest.fabricate_via_api! do |merge_request|
-          merge_request.no_preparation = true
-          merge_request.project = policy_project
-          merge_request.target_new_branch = false
-          merge_request.source_branch = branch_name
-        end.merge_via_api!
+        create(:merge_request,
+          :no_preparation,
+          project: policy_project,
+          target_new_branch: false,
+          source_branch: branch_name).merge_via_api!
       end
     end
   end
diff --git a/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb b/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb
index 548b5e23b2ac6c705b8342a644ca078827d23c54..c3b4463e23ac039ec0ede00297cf8da0a2673ed9 100644
--- a/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb
+++ b/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb
@@ -71,12 +71,12 @@ module QA
       context 'when populated by a Dependency Scan' do
         it 'populates licenses in the pipeline, dashboard and merge request',
           testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/409969' do
-          merge_request = Resource::MergeRequest.fabricate_via_api! do |merge_request|
-            merge_request.source = source
-            merge_request.project = test_project
-            merge_request.source_branch = 'license-management-mr'
-            merge_request.target_branch = test_project.default_branch
-          end
+          merge_request = create(:merge_request,
+            source: source,
+            project: test_project,
+            source_branch: 'license-management-mr',
+            target_branch: test_project.default_branch)
+
           Flow::Login.sign_in_unless_signed_in
 
           merge_request.visit!
diff --git a/rubocop/cop/qa/fabricate_usage.rb b/rubocop/cop/qa/fabricate_usage.rb
index 1787df0e7dfe0781ee68e729b6da3dbc8bf67ac2..b03646d8a9b753e66efc2353bf7d53c5a2ecec68 100644
--- a/rubocop/cop/qa/fabricate_usage.rb
+++ b/rubocop/cop/qa/fabricate_usage.rb
@@ -28,23 +28,35 @@ module QA
       class FabricateUsage < RuboCop::Cop::Base
         MESSAGE = "Prefer create(:%{factory}[, ...]) here."
         RESOURCES_TO_CHECK = {
-          'Resource::Project' => :project,
+          'Resource::CiVariable' => :ci_variable,
+          'Resource::Commit' => :commit,
+          'Resource::Design' => :design,
+          'Resource::File' => :file,
           'Resource::Group' => :group,
+          'Resource::GroupAccessToken' => :group_access_token,
+          'Resource::GroupDeployToken' => :group_deploy_token,
+          'Resource::GroupLabel' => :group_label,
+          'Resource::GroupMilestone' => :group_milestone,
+          'Resource::GroupRunner' => :group_runner,
+          'Resource::GroupWikiPage' => :group_wiki_page,
           'Resource::Issue' => :issue,
-          'Resource::User' => :user,
-          'Resource::Pipeline' => :pipeline,
           'Resource::Job' => :job,
-          'Resource::File' => :file,
-          'Resource::GroupAccessToken' => :group_access_token,
+          'Resource::MergeRequest' => :merge_request,
+          'Resource::Package' => :package,
+          'Resource::Pipeline' => :pipeline,
+          'Resource::PipelineSchedule' => :pipeline_schedule,
+          'Resource::Project' => :project,
           'Resource::ProjectAccessToken' => :project_access_token,
-          'Resource::GroupLabel' => :group_label,
+          'Resource::ProjectDeployToken' => :project_deploy_token,
           'Resource::ProjectLabel' => :project_label,
-          'Resource::GroupRunner' => :group_runner,
-          'Resource::ProjectRunner' => :project_runner,
-          'Resource::GroupMilestone' => :group_milestone,
           'Resource::ProjectMilestone' => :project_milestone,
+          'Resource::ProjectRunner' => :project_runner,
+          'Resource::ProjectSnippet' => :project_snippet,
+          'Resource::ProjectWikiPage' => :project_wiki_page,
+          'Resource::Sandbox' => :sandbox,
           'Resource::Snippet' => :snippet,
-          'Resource::ProjectSnippet' => :project_snippet
+          'Resource::Tag' => :tag,
+          'Resource::User' => :user
         }.freeze
 
         RESTRICT_ON_SEND = %i[fabricate_via_api!].freeze