diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml
index feddf9929e3d50acc2596a4b48d45c9dc76d8743..89c020ed881b0b9197fb5799c42c1623d143a2da 100644
--- a/.rubocop_todo/rspec/feature_category.yml
+++ b/.rubocop_todo/rspec/feature_category.yml
@@ -2881,7 +2881,6 @@ RSpec/FeatureCategory:
     - 'spec/lib/gitlab/seeders/ci/daily_build_group_report_result_spec.rb'
     - 'spec/lib/gitlab/serializer/ci/variables_spec.rb'
     - 'spec/lib/gitlab/serializer/pagination_spec.rb'
-    - 'spec/lib/gitlab/service_desk_spec.rb'
     - 'spec/lib/gitlab/session_spec.rb'
     - 'spec/lib/gitlab/setup_helper/praefect_spec.rb'
     - 'spec/lib/gitlab/setup_helper/workhorse_spec.rb'
diff --git a/.rubocop_todo/rspec/receive_messages.yml b/.rubocop_todo/rspec/receive_messages.yml
index a3d21c45725a5af8c55729314b8419bacf0e0f16..861c2aa8a99d7937715e05eadaa9ba32d8d9c213 100644
--- a/.rubocop_todo/rspec/receive_messages.yml
+++ b/.rubocop_todo/rspec/receive_messages.yml
@@ -360,7 +360,6 @@ RSpec/ReceiveMessages:
     - 'spec/lib/gitlab/request_forgery_protection_spec.rb'
     - 'spec/lib/gitlab/runtime_spec.rb'
     - 'spec/lib/gitlab/search_context/builder_spec.rb'
-    - 'spec/lib/gitlab/service_desk_spec.rb'
     - 'spec/lib/gitlab/shell_spec.rb'
     - 'spec/lib/gitlab/sidekiq_config_spec.rb'
     - 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb'
diff --git a/app/controllers/projects/service_desk_controller.rb b/app/controllers/projects/service_desk_controller.rb
index 311bf89e1a48b61e1aecce9bf4741ace22b0f468..b661ccf63f7bdb501f0f3fa34f10d188f63016dc 100644
--- a/app/controllers/projects/service_desk_controller.rb
+++ b/app/controllers/projects/service_desk_controller.rb
@@ -44,7 +44,7 @@ def service_desk_attributes
 
     {
       service_desk_address: ::ServiceDesk::Emails.new(project).system_address,
-      service_desk_enabled: ::Gitlab::ServiceDesk.enabled?(project),
+      service_desk_enabled: ::ServiceDesk.enabled?(project),
       issue_template_key: service_desk_settings&.issue_template_key,
       template_file_missing: service_desk_settings&.issue_template_missing?,
       outgoing_name: service_desk_settings&.outgoing_name,
diff --git a/app/graphql/types/project_type.rb b/app/graphql/types/project_type.rb
index b93182d9acad2629f2be8ca89613f6f9a151ded3..b26d4f0a4d2bddbdc466921ee23e5abea79d73fc 100644
--- a/app/graphql/types/project_type.rb
+++ b/app/graphql/types/project_type.rb
@@ -947,7 +947,7 @@ def service_desk_address
     end
 
     def service_desk_enabled
-      ::Gitlab::ServiceDesk.enabled?(project)
+      ::ServiceDesk.enabled?(project)
     end
 
     def languages
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 1b453e38ab364a17c86518125e0a458c99d30049..3bbcdf7148dc7fc46331c6023c01c048337492f9 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -102,8 +102,8 @@ def show_moved_service_desk_issue_warning?(issue)
     return false unless issue.moved_from
     return false unless issue.from_service_desk?
 
-    ::Gitlab::ServiceDesk.enabled?(issue.moved_from.project) &&
-      !::Gitlab::ServiceDesk.enabled?(issue.project)
+    ::ServiceDesk.enabled?(issue.moved_from.project) &&
+      !::ServiceDesk.enabled?(issue.project)
   end
 
   def issue_header_actions_data(project, issuable, current_user, issuable_sidebar)
diff --git a/app/models/group.rb b/app/models/group.rb
index 0b5a60d81db9cb30a38ed445b6f2d4668af2935b..18a1b65752694e4317d00e8f47e970ad1a1afc26 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -936,7 +936,7 @@ def parent_allows_two_factor_authentication?
   end
 
   def has_project_with_service_desk_enabled?
-    Gitlab::ServiceDesk.supported? && all_projects.service_desk_enabled.exists?
+    ::ServiceDesk.supported? && all_projects.service_desk_enabled.exists?
   end
   strong_memoize_attr :has_project_with_service_desk_enabled?
 
diff --git a/app/models/service_desk.rb b/app/models/service_desk.rb
index cb9c924c01f88ec3b7bcfc86a97277098a45d9b0..86944cd2783bdd0b18617bf3e71a71b133de67e7 100644
--- a/app/models/service_desk.rb
+++ b/app/models/service_desk.rb
@@ -4,4 +4,13 @@ module ServiceDesk
   def self.table_name_prefix
     'service_desk_'
   end
+
+  def self.enabled?(project)
+    supported? && project.service_desk_enabled
+  end
+
+  def self.supported?
+    ::Gitlab::Email::IncomingEmail.enabled? &&
+      ::Gitlab::Email::IncomingEmail.supports_wildcard?
+  end
 end
diff --git a/app/policies/issue_policy.rb b/app/policies/issue_policy.rb
index f75f76741ae4ff989f0cc1d31b9d8722950a2ffc..43e2a25336bb2ab37412599b6807b01f4f6fe87e 100644
--- a/app/policies/issue_policy.rb
+++ b/app/policies/issue_policy.rb
@@ -43,7 +43,7 @@ def epics_license_available?
     if group_issue?
       subject_container.has_project_with_service_desk_enabled?
     else
-      ::Gitlab::ServiceDesk.enabled?(subject_container)
+      ::ServiceDesk.enabled?(subject_container)
     end
   end
 
diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb
index fa1c6afc1c4b02c6822c11339c35dc1af68b20b8..10f9ececda7644aada8178dd9de0542be48e62cc 100644
--- a/app/policies/project_policy.rb
+++ b/app/policies/project_policy.rb
@@ -205,7 +205,7 @@ class ProjectPolicy < BasePolicy
   end
 
   with_scope :subject
-  condition(:service_desk_enabled) { ::Gitlab::ServiceDesk.enabled?(@subject) }
+  condition(:service_desk_enabled) { ::ServiceDesk.enabled?(@subject) }
 
   with_scope :subject
   condition(:model_experiments_enabled) do
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index a0658eaff9e1ecceb1e7970967b52600d004ee05..54e5db518d474a0f864414e375a01d29d401181d 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -449,7 +449,7 @@ def send_new_note_notifications(note)
   def send_service_desk_notification(note)
     return unless note.noteable_type == 'Issue'
     return if note.confidential
-    return unless note.project && ::Gitlab::ServiceDesk.enabled?(note.project)
+    return unless note.project && ::ServiceDesk.enabled?(note.project)
 
     issue = note.noteable
     recipients = issue.issue_email_participants
diff --git a/app/views/projects/_service_desk_settings.html.haml b/app/views/projects/_service_desk_settings.html.haml
index 987b9309aae0c123f30fdaf698b6ba849d8fa45c..ae284ffcbdbf199c5c13d130bc85a5daba51c9e7 100644
--- a/app/views/projects/_service_desk_settings.html.haml
+++ b/app/views/projects/_service_desk_settings.html.haml
@@ -7,8 +7,8 @@
     - link_start = "<a href='#{help_page_path('user/project/service_desk/index.md')}' target='_blank' rel='noopener noreferrer'>".html_safe
     = _('Enable and disable Service Desk. Some additional configuration might be required. %{link_start}Learn more%{link_end}.').html_safe % { link_start: link_start, link_end: '</a>'.html_safe }
   - c.with_body do
-    - if ::Gitlab::ServiceDesk.supported?
-      - service_desk_enabled = ::Gitlab::ServiceDesk.enabled?(@project)
+    - if ::ServiceDesk.supported?
+      - service_desk_enabled = ::ServiceDesk.enabled?(@project)
       - service_desk_emails = ::ServiceDesk::Emails.new(@project)
 
       -# Data attributes refactoring issue: https://gitlab.com/gitlab-org/gitlab/-/issues/467547
diff --git a/app/views/projects/issues/service_desk.html.haml b/app/views/projects/issues/service_desk.html.haml
index 24366b4bc058873fd1185165b658d6e03efcb14f..ff3cba4be7b2d33d584df3f6a577025cc0d033de 100644
--- a/app/views/projects/issues/service_desk.html.haml
+++ b/app/views/projects/issues/service_desk.html.haml
@@ -3,7 +3,7 @@
 - page_title _("Service Desk")
 - add_page_specific_style 'page_bundles/issuable_list'
 - add_page_specific_style 'page_bundles/issues_list'
-- service_desk_enabled = ::Gitlab::ServiceDesk.enabled?(@project)
+- service_desk_enabled = ::ServiceDesk.enabled?(@project)
 
 - support_bot_attrs = { service_desk_enabled: service_desk_enabled, **UserSerializer.new.represent(Users::Internal.support_bot) }.to_json
 
@@ -15,5 +15,5 @@
     service_desk_callout_svg_path: image_path('illustrations/service-desk-sm.svg'),
     service_desk_settings_path: edit_project_path(@project, anchor: 'js-service-desk'),
     service_desk_help_path: help_page_path('user/project/service_desk/index.md'),
-    is_service_desk_supported: Gitlab::ServiceDesk.supported?.to_s,
+    is_service_desk_supported: ::ServiceDesk.supported?.to_s,
     is_service_desk_enabled: service_desk_enabled.to_s } }
diff --git a/ee/spec/features/projects/navbar_spec.rb b/ee/spec/features/projects/navbar_spec.rb
index d910333545f85b0d2a4e12c47eeaa1ac665806f4..9a02e3a037a131f0f235bff65a058c774daf6a56 100644
--- a/ee/spec/features/projects/navbar_spec.rb
+++ b/ee/spec/features/projects/navbar_spec.rb
@@ -23,7 +23,7 @@
     insert_infrastructure_google_cloud_nav
     insert_infrastructure_aws_nav
     project.update!(service_desk_enabled: true)
-    allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+    allow(::ServiceDesk).to receive(:supported?).and_return(true)
 
     allow(Gitlab::CurrentSettings).to receive(:product_analytics_enabled?).and_return(true)
     stub_licensed_features(product_analytics: true)
diff --git a/ee/spec/lib/ee/gitlab/email/handler/service_desk_handler_spec.rb b/ee/spec/lib/ee/gitlab/email/handler/service_desk_handler_spec.rb
index e30655a6cc1f44d0b295c2f2d543e8525338e5db..6d112fcc48e1afe698a86124bf7f3b0b311b6875 100644
--- a/ee/spec/lib/ee/gitlab/email/handler/service_desk_handler_spec.rb
+++ b/ee/spec/lib/ee/gitlab/email/handler/service_desk_handler_spec.rb
@@ -22,7 +22,7 @@
     let_it_be(:project) { create(:project, :repository, :private, group: group, path: 'test', service_desk_enabled: true) }
 
     before do
-      allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+      allow(::ServiceDesk).to receive(:supported?).and_return(true)
     end
 
     context 'when everything is fine' do
diff --git a/ee/spec/lib/sidebars/projects/super_sidebar_panel_spec.rb b/ee/spec/lib/sidebars/projects/super_sidebar_panel_spec.rb
index ecd43959feb5c04046c63bf6f92aa44c2ee592d4..a777db2dfd61f84048e23db01f75c870852b2762 100644
--- a/ee/spec/lib/sidebars/projects/super_sidebar_panel_spec.rb
+++ b/ee/spec/lib/sidebars/projects/super_sidebar_panel_spec.rb
@@ -48,7 +48,7 @@
     stub_saas_features(google_cloud_support: true)
     # Iterations are only available in non-personal projects
     allow(project).to receive(:personal?).and_return(false)
-    allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+    allow(::ServiceDesk).to receive(:supported?).and_return(true)
     project.update!(service_desk_enabled: true)
     allow(project).to receive(:product_analytics_enabled?).and_return(true)
   end
diff --git a/ee/spec/policies/epic_policy_spec.rb b/ee/spec/policies/epic_policy_spec.rb
index 34117b8c5f899345e9e3665d77382fafbc4eb18b..b2823acbef53bc78fb3dcc464dd65d75a7c0dd79 100644
--- a/ee/spec/policies/epic_policy_spec.rb
+++ b/ee/spec/policies/epic_policy_spec.rb
@@ -394,7 +394,7 @@
         let_it_be(:user) { Users::Internal.support_bot }
 
         before do
-          allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+          allow(::ServiceDesk).to receive(:supported?).and_return(true)
         end
 
         context 'when group has at least one project with service desk enabled' do
diff --git a/ee/spec/policies/group_policy_spec.rb b/ee/spec/policies/group_policy_spec.rb
index a0785058b827bfed2e6b2abcf3ce323eb9c28090..ce737440e5976d3fc94ec07037e1c75e45dfc91c 100644
--- a/ee/spec/policies/group_policy_spec.rb
+++ b/ee/spec/policies/group_policy_spec.rb
@@ -103,7 +103,7 @@ def stub_group_saml_config(enabled)
       let_it_be(:current_user) { Users::Internal.support_bot }
 
       before do
-        allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+        allow(::ServiceDesk).to receive(:supported?).and_return(true)
       end
 
       context 'when group has at least one project with service desk enabled' do
diff --git a/ee/spec/policies/issue_policy_spec.rb b/ee/spec/policies/issue_policy_spec.rb
index 2db92973a864d9b6acef14695ff5e08e6f35b7c1..b91a4cadf9f511b5c5d5b58b9cf7b37ab164044a 100644
--- a/ee/spec/policies/issue_policy_spec.rb
+++ b/ee/spec/policies/issue_policy_spec.rb
@@ -176,7 +176,7 @@ def permissions(user, issue)
       before do
         allow(::Gitlab::Email::IncomingEmail).to receive(:enabled?).and_return(true)
         allow(::Gitlab::Email::IncomingEmail).to receive(:supports_wildcard?).and_return(true)
-        allow(::Gitlab::ServiceDesk).to receive(:enabled?).and_return(true)
+        allow(::ServiceDesk).to receive(:enabled?).and_return(true)
       end
 
       it 'allows support_bot to admin_issue_relation on project issues, but does not allow it on group issues' do
diff --git a/lib/api/entities/project.rb b/lib/api/entities/project.rb
index 6d0508fe94cec8042db615f5be4b4d55ed5d9c7d..68905a40984a37ff359658d33cae83b4cc82e14e 100644
--- a/lib/api/entities/project.rb
+++ b/lib/api/entities/project.rb
@@ -60,7 +60,7 @@ class Project < ProjectDetails
       expose(:jobs_enabled, documentation: { type: 'boolean' }) { |project, options| project.feature_available?(:builds, options[:current_user]) }
       expose(:snippets_enabled, documentation: { type: 'boolean' }) { |project, options| project.feature_available?(:snippets, options[:current_user]) }
       expose(:container_registry_enabled, documentation: { type: 'boolean' }) { |project, options| project.feature_available?(:container_registry, options[:current_user]) }
-      expose(:service_desk_enabled, documentation: { type: 'boolean' }) { |project, options| ::Gitlab::ServiceDesk.enabled?(project) }
+      expose(:service_desk_enabled, documentation: { type: 'boolean' }) { |project, options| ::ServiceDesk.enabled?(project) }
 
       expose :service_desk_address, documentation: { type: 'string', example: 'address@example.com' },
         if: ->(project, options) { Ability.allowed?(options[:current_user], :admin_issue, project) } do |project|
diff --git a/lib/gitlab/email/handler/service_desk_handler.rb b/lib/gitlab/email/handler/service_desk_handler.rb
index cc273a515ab19935f91f9b58357e36c926599f9f..0712b5b508ba7783d5d7a77b90f944868df9b71b 100644
--- a/lib/gitlab/email/handler/service_desk_handler.rb
+++ b/lib/gitlab/email/handler/service_desk_handler.rb
@@ -26,7 +26,7 @@ def initialize(mail, mail_key, service_desk_key: nil)
         end
 
         def can_handle?
-          Gitlab::ServiceDesk.supported? && (project_id || can_handle_legacy_format? || service_desk_key)
+          ::ServiceDesk.supported? && (project_id || can_handle_legacy_format? || service_desk_key)
         end
 
         def execute
@@ -65,7 +65,7 @@ def project
           strong_memoize(:project) do
             project_record = super
             project_record ||= project_from_key if service_desk_key
-            project_record && ::Gitlab::ServiceDesk.enabled?(project_record) ? project_record : nil
+            project_record && ::ServiceDesk.enabled?(project_record) ? project_record : nil
           end
         end
 
diff --git a/lib/gitlab/service_desk.rb b/lib/gitlab/service_desk.rb
deleted file mode 100644
index af556d09a5ea1e11a019133fc3ec6c753341f36a..0000000000000000000000000000000000000000
--- a/lib/gitlab/service_desk.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
-  module ServiceDesk
-    def self.enabled?(project)
-      supported? && project.service_desk_enabled
-    end
-
-    def self.supported?
-      Gitlab::Email::IncomingEmail.enabled? && Gitlab::Email::IncomingEmail.supports_wildcard?
-    end
-  end
-end
diff --git a/lib/service_desk/emails.rb b/lib/service_desk/emails.rb
index b25260dfab16012a3063df7ed1bd4510a1997850..781aaad79672d5324985502913b4a3a474c65edd 100644
--- a/lib/service_desk/emails.rb
+++ b/lib/service_desk/emails.rb
@@ -34,7 +34,7 @@ def alias_address
     end
 
     def incoming_address
-      return unless Gitlab::ServiceDesk.enabled?(project)
+      return unless ServiceDesk.enabled?(project)
 
       config = Gitlab.config.incoming_email
       wildcard = Gitlab::Email::Common::WILDCARD_PLACEHOLDER
diff --git a/lib/sidebars/projects/menus/issues_menu.rb b/lib/sidebars/projects/menus/issues_menu.rb
index 1c5454ebd172842f6ba5e7249f51f58b1d9bab03..148b7d1c6ce396ee68c93277cf16125058a748c0 100644
--- a/lib/sidebars/projects/menus/issues_menu.rb
+++ b/lib/sidebars/projects/menus/issues_menu.rb
@@ -109,9 +109,7 @@ def boards_menu_item
         end
 
         def service_desk_menu_item
-          unless ::Gitlab::ServiceDesk.enabled?(context.project)
-            return ::Sidebars::NilMenuItem.new(item_id: :service_desk)
-          end
+          return ::Sidebars::NilMenuItem.new(item_id: :service_desk) unless ::ServiceDesk.enabled?(context.project)
 
           ::Sidebars::MenuItem.new(
             title: _('Service Desk'),
diff --git a/spec/features/issues/service_desk_spec.rb b/spec/features/issues/service_desk_spec.rb
index 3f4e042bddc54de3ae7b5511d3c5b5b2723b2a4f..0be69f1a9044e8cd27b0ffe6a87030f3564c9939 100644
--- a/spec/features/issues/service_desk_spec.rb
+++ b/spec/features/issues/service_desk_spec.rb
@@ -9,7 +9,7 @@
   let_it_be(:support_bot) { Users::Internal.support_bot }
 
   before do
-    # The following two conditions equate to Gitlab::ServiceDesk.supported == true
+    # The following two conditions equate to ServiceDesk.supported == true
     allow(Gitlab::Email::IncomingEmail).to receive(:enabled?).and_return(true)
     allow(Gitlab::Email::IncomingEmail).to receive(:supports_wildcard?).and_return(true)
 
diff --git a/spec/features/monitor_sidebar_link_spec.rb b/spec/features/monitor_sidebar_link_spec.rb
index 14fe8814c9b6be179b4410d86e062bbac4eb335d..75e373a9dc4efcbb923544db812fbd75d303cf64 100644
--- a/spec/features/monitor_sidebar_link_spec.rb
+++ b/spec/features/monitor_sidebar_link_spec.rb
@@ -13,7 +13,7 @@
     sign_in(user)
 
     project.update!(service_desk_enabled: true)
-    allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+    allow(::ServiceDesk).to receive(:supported?).and_return(true)
   end
 
   shared_examples 'shows common Monitor menu item based on the access level' do
diff --git a/spec/features/projects/navbar_spec.rb b/spec/features/projects/navbar_spec.rb
index 52cc1622e849b4d79adc51595badf4b5ceef0182..358cbe7a7332cd5452a7ac30a198aeaef312ddb7 100644
--- a/spec/features/projects/navbar_spec.rb
+++ b/spec/features/projects/navbar_spec.rb
@@ -20,7 +20,7 @@
     insert_infrastructure_google_cloud_nav
     insert_infrastructure_aws_nav
     project.update!(service_desk_enabled: true)
-    allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+    allow(::ServiceDesk).to receive(:supported?).and_return(true)
   end
 
   it_behaves_like 'verified navigation bar' do
diff --git a/spec/features/promotion_spec.rb b/spec/features/promotion_spec.rb
index b2ab718321fd3c646bc85c5a48cc515a500bdb94..538c181920abc9be4a4ae224ac113609c600c384 100644
--- a/spec/features/promotion_spec.rb
+++ b/spec/features/promotion_spec.rb
@@ -14,7 +14,7 @@
 
     context 'when service desk is not supported' do
       before do
-        allow(::Gitlab::ServiceDesk).to receive(:supported?).and_return(false)
+        allow(::ServiceDesk).to receive(:supported?).and_return(false)
       end
 
       it 'appears in project edit page' do
@@ -40,7 +40,7 @@
 
     context 'when service desk is supported' do
       before do
-        allow(::Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+        allow(::ServiceDesk).to receive(:supported?).and_return(true)
       end
 
       it 'does not show promotion' do
diff --git a/spec/lib/api/entities/project_spec.rb b/spec/lib/api/entities/project_spec.rb
index b4e5cdce7dbee8975f4b731db1c73e450036c757..4b02e1c6f1e4348774b080e4c9a587ea860b64e3 100644
--- a/spec/lib/api/entities/project_spec.rb
+++ b/spec/lib/api/entities/project_spec.rb
@@ -28,7 +28,7 @@
 
   describe '.service_desk_address', feature_category: :service_desk do
     before do
-      allow(::Gitlab::ServiceDesk).to receive(:enabled?).and_return(true)
+      allow(::ServiceDesk).to receive(:enabled?).and_return(true)
     end
 
     context 'when a user can admin issues' do
diff --git a/spec/lib/gitlab/email/handler/create_note_handler_spec.rb b/spec/lib/gitlab/email/handler/create_note_handler_spec.rb
index 088ca5e093f5cd31fbd406b5b153c533096542bf..971b5fa74a54ac719395fda96284dd7f6c248065 100644
--- a/spec/lib/gitlab/email/handler/create_note_handler_spec.rb
+++ b/spec/lib/gitlab/email/handler/create_note_handler_spec.rb
@@ -236,7 +236,7 @@
     let_it_be(:note) { create(:note, noteable: noteable, project: project) }
 
     let!(:sent_notification) do
-      allow(::Gitlab::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
+      allow(::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
       SentNotification.record_note(note, Users::Internal.support_bot.id)
     end
 
@@ -267,7 +267,7 @@
       let!(:noteable) { note.noteable }
 
       let!(:sent_notification) do
-        allow(::Gitlab::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
+        allow(::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
         SentNotification.record_note(note, Users::Internal.support_bot.id)
       end
 
diff --git a/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb b/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb
index e2f3d74971aab5e8897f5446d255b395b5ee1392..80bd951cd0bf622e3626a348d6c52bd29e75be0c 100644
--- a/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb
+++ b/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb
@@ -30,7 +30,7 @@
     let(:confidential_ticket) { true }
 
     before do
-      allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+      allow(::ServiceDesk).to receive(:supported?).and_return(true)
     end
 
     shared_examples 'a new issue request' do
@@ -811,7 +811,7 @@ def receive_reply
 
     context 'when service desk is not enabled for project' do
       before do
-        allow(Gitlab::ServiceDesk).to receive(:enabled?).and_return(false)
+        allow(::ServiceDesk).to receive(:enabled?).and_return(false)
       end
 
       it 'does not create an issue' do
diff --git a/spec/lib/gitlab/email/handler_spec.rb b/spec/lib/gitlab/email/handler_spec.rb
index 47907401a6321ed08581669b16c972dce3be5aa4..69d88311804dccc00b57a3f7596397bcb039faa0 100644
--- a/spec/lib/gitlab/email/handler_spec.rb
+++ b/spec/lib/gitlab/email/handler_spec.rb
@@ -67,7 +67,7 @@ def handler_for(fixture, mail_key)
     end
 
     before do
-      allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+      allow(::ServiceDesk).to receive(:supported?).and_return(true)
     end
 
     it 'picks each handler at least once' do
diff --git a/spec/lib/sidebars/projects/menus/issues_menu_spec.rb b/spec/lib/sidebars/projects/menus/issues_menu_spec.rb
index 92d2b4ab406777fccb862bd30d3455e728738273..210fff204959007236171b713255727685161640 100644
--- a/spec/lib/sidebars/projects/menus/issues_menu_spec.rb
+++ b/spec/lib/sidebars/projects/menus/issues_menu_spec.rb
@@ -69,7 +69,7 @@
 
       describe 'when service desk is supported' do
         before do
-          allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+          allow(::ServiceDesk).to receive(:supported?).and_return(true)
         end
 
         describe 'when service desk is enabled' do
@@ -91,7 +91,7 @@
 
       describe 'when service desk is unsupported' do
         before do
-          allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(false)
+          allow(::ServiceDesk).to receive(:supported?).and_return(false)
           project.update!(service_desk_enabled: true)
         end
 
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 67e04cdcf23b1f58a467f77576f5b87586244638..38885ca3a5f13185b035aa57443e8c2385f65e35 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -3403,7 +3403,7 @@ def define_cache_expectations(cache_key)
     subject { group.has_project_with_service_desk_enabled? }
 
     before do
-      allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+      allow(::ServiceDesk).to receive(:supported?).and_return(true)
     end
 
     context 'when service desk is enabled' do
@@ -3414,7 +3414,7 @@ def define_cache_expectations(cache_key)
 
         context 'when service desk is not supported' do
           before do
-            allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(false)
+            allow(::ServiceDesk).to receive(:supported?).and_return(false)
           end
 
           it { is_expected.to eq(false) }
diff --git a/spec/lib/gitlab/service_desk_spec.rb b/spec/models/service_desk_spec.rb
similarity index 82%
rename from spec/lib/gitlab/service_desk_spec.rb
rename to spec/models/service_desk_spec.rb
index 41108730fc815261ff36f5d732a8ba39a7870043..7d4db328eb210b8987225ab53b8fbfd8223ead3a 100644
--- a/spec/lib/gitlab/service_desk_spec.rb
+++ b/spec/models/service_desk_spec.rb
@@ -2,10 +2,11 @@
 
 require 'spec_helper'
 
-RSpec.describe Gitlab::ServiceDesk, feature_category: :service_desk do
+RSpec.describe ServiceDesk, feature_category: :service_desk do
   before do
-    allow(Gitlab::Email::IncomingEmail).to receive(:enabled?).and_return(true)
-    allow(Gitlab::Email::IncomingEmail).to receive(:supports_wildcard?).and_return(true)
+    allow(Gitlab::Email::IncomingEmail).to receive_messages(
+      enabled?: true,
+      supports_wildcard?: true)
   end
 
   describe 'enabled?' do
diff --git a/spec/policies/group_policy_spec.rb b/spec/policies/group_policy_spec.rb
index e7596f6310f28133b58d3ff9b13432b8706362e7..3b76d293e8dfd6ddf3573ce80bce25973a47a4ce 100644
--- a/spec/policies/group_policy_spec.rb
+++ b/spec/policies/group_policy_spec.rb
@@ -1355,7 +1355,7 @@
     let_it_be(:current_user) { Users::Internal.support_bot }
 
     before do
-      allow(Gitlab::ServiceDesk).to receive(:supported?).and_return(true)
+      allow(::ServiceDesk).to receive(:supported?).and_return(true)
     end
 
     it { expect_disallowed(:read_label) }
diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb
index bdaa95a1e3e5cc5314222650c5b5948811dc6173..b25040162af1a0ec2cdd76a3b32769c2e76a42c5 100644
--- a/spec/policies/project_policy_spec.rb
+++ b/spec/policies/project_policy_spec.rb
@@ -1125,7 +1125,7 @@ def set_access_level(access_level)
 
     context 'with service desk enabled' do
       before do
-        allow(::Gitlab::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
+        allow(::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
       end
 
       it { expect_allowed(:reporter_access, :create_note, :read_issue, :read_work_item) }
diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml
index 84f0513ef34d17d9075e395e2b04d62cf8be8571..614eee6c777df18d43240961e5c688025cf93a6b 100644
--- a/spec/support/rspec_order_todo.yml
+++ b/spec/support/rspec_order_todo.yml
@@ -5471,7 +5471,6 @@
 - './spec/lib/gitlab/seeder_spec.rb'
 - './spec/lib/gitlab/serializer/ci/variables_spec.rb'
 - './spec/lib/gitlab/serializer/pagination_spec.rb'
-- './spec/lib/gitlab/service_desk_spec.rb'
 - './spec/lib/gitlab/session_spec.rb'
 - './spec/lib/gitlab/setup_helper/praefect_spec.rb'
 - './spec/lib/gitlab/setup_helper/workhorse_spec.rb'
diff --git a/spec/support/shared_contexts/email_shared_context.rb b/spec/support/shared_contexts/email_shared_context.rb
index dfde28f4ce14bdb3d8404eeb42170da210068872..772591d2e2f5987ca8511e93e0720aa7336d970a 100644
--- a/spec/support/shared_contexts/email_shared_context.rb
+++ b/spec/support/shared_contexts/email_shared_context.rb
@@ -203,13 +203,13 @@ def service_desk_fixture(path, slug: nil, key: 'mykey')
     let(:email_raw) { with_quick_actions }
 
     let!(:sent_notification) do
-      allow(::Gitlab::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
+      allow(::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
       SentNotification.record_note(note, support_bot.id, mail_key)
     end
 
     context 'is enabled' do
       before do
-        allow(::Gitlab::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
+        allow(::ServiceDesk).to receive(:enabled?).with(project).and_return(true)
         project.project_feature.update!(issues_access_level: issues_access_level)
       end
 
@@ -273,8 +273,8 @@ def service_desk_fixture(path, slug: nil, key: 'mykey')
 
     context 'is disabled', unless: forwardable do
       before do
-        allow(::Gitlab::ServiceDesk).to receive(:enabled?).and_return(false)
-        allow(::Gitlab::ServiceDesk).to receive(:enabled?).with(project).and_return(false)
+        allow(::ServiceDesk).to receive(:enabled?).and_return(false)
+        allow(::ServiceDesk).to receive(:enabled?).with(project).and_return(false)
       end
 
       it 'does not create a comment' do