diff --git a/custom_admin_menu.services.yml b/custom_admin_menu.services.yml
index 840a17f25c903cf88aa3ba4a00958c0aaab61696..db0e91e98a4bc774228f00e55f8d5d97a3081d22 100644
--- a/custom_admin_menu.services.yml
+++ b/custom_admin_menu.services.yml
@@ -1,7 +1,16 @@
 services:
   custom_admin_menu.manager:
     class: Drupal\custom_admin_menu\Service\CustomAdminMenuManager
-    arguments: [ '@current_user', '@toolbar.menu_tree', '@theme.manager', '@entity_type.manager', '@config.factory', '@theme.initialization', '@module_handler', '@custom_admin_menu.settings' ]
+    arguments:
+      - '@current_user'
+      - '@toolbar.menu_tree'
+      - '@theme.manager'
+      - '@entity_type.manager'
+      - '@config.factory'
+      - '@theme.initialization'
+      - '@module_handler'
+      - '@custom_admin_menu.settings'
+      - '@custom_admin_menu.menu_item_display_manager'
 
   custom_admin_menu.settings:
     class: Drupal\custom_admin_menu\Service\CustomAdminMenuSettings
@@ -9,8 +18,17 @@ services:
 
   custom_admin_menu.shortcuts:
     class: Drupal\custom_admin_menu\Service\CustomAdminMenuShortcuts
-    arguments: [ '@theme.manager', '@theme.initialization', '@entity_type.manager', '@config.factory', '@request_stack', '@title_resolver', '@custom_admin_menu.settings' ]
+    arguments:
+      - '@theme.manager'
+      - '@theme.initialization'
+      - '@entity_type.manager'
+      - '@config.factory'
+      - '@request_stack'
+      - '@title_resolver'
+      - '@custom_admin_menu.settings'
 
   custom_admin_menu.menu_item_display_manager:
     class: Drupal\custom_admin_menu\Service\CustomAdminMenuMenuItemDisplayManager
-    arguments: [ '@current_user', '@language_manager' ]
+    arguments:
+      - '@current_user'
+      - '@language_manager'
diff --git a/src/Service/CustomAdminMenuManager.php b/src/Service/CustomAdminMenuManager.php
index 435ccaae7ab0269b9098612e102aa5cea9af20bc..b04f57a62217e62d05b69a5d42322f333d96e611 100644
--- a/src/Service/CustomAdminMenuManager.php
+++ b/src/Service/CustomAdminMenuManager.php
@@ -101,6 +101,13 @@ class CustomAdminMenuManager implements TrustedCallbackInterface {
    */
   protected $currentUser;
 
+  /**
+   * Menu item display manager.
+   *
+   * @var \Drupal\custom_admin_menu\Service\CustomAdminMenuMenuItemDisplayManager
+   */
+  protected CustomAdminMenuMenuItemDisplayManager $customAdminMenuMenuItemDisplayManager;
+
   /**
    * CustomAdminMenuManager constructor.
    *
@@ -129,7 +136,8 @@ class CustomAdminMenuManager implements TrustedCallbackInterface {
     ConfigFactoryInterface $configFactory,
     ThemeInitializationInterface $themeInitialization,
     ModuleHandlerInterface $moduleHandler,
-    CustomAdminMenuSettings $settings) {
+    CustomAdminMenuSettings $settings,
+    CustomAdminMenuMenuItemDisplayManager $customAdminMenuMenuItemDisplayManager) {
     $this->currentUser = $currentUser;
     $this->menuLinkTree = $menuLinkTree;
     $this->adminTheme = $themeManager->getActiveTheme();
@@ -139,6 +147,7 @@ class CustomAdminMenuManager implements TrustedCallbackInterface {
     $this->themeInitialization = $themeInitialization;
     $this->moduleHandler = $moduleHandler;
     $this->settings = $settings;
+    $this->customAdminMenuMenuItemDisplayManager = $customAdminMenuMenuItemDisplayManager;
   }
 
   /**
@@ -182,6 +191,9 @@ class CustomAdminMenuManager implements TrustedCallbackInterface {
     // Build the menu.
     $buildArray = $this->getMenuBuildArray($menu->id());
 
+    // Filter allowed items.
+    $this->customAdminMenuMenuItemDisplayManager->filterItems($buildArray['#items']);
+
     // Add toolbar-icon class.
     $this->initClasses($buildArray['#items']);
 
diff --git a/src/Service/CustomAdminMenuMenuItemDisplayManager.php b/src/Service/CustomAdminMenuMenuItemDisplayManager.php
index 6e84b488002fe1ac6d8304ed4cfec520ef9f84a3..e209482177c7bc883ee1c4084b6e7ae752d1b1c9 100644
--- a/src/Service/CustomAdminMenuMenuItemDisplayManager.php
+++ b/src/Service/CustomAdminMenuMenuItemDisplayManager.php
@@ -112,6 +112,7 @@ class CustomAdminMenuMenuItemDisplayManager
    *   The item plugin definition.
    * @param AccountProxyInterface $user
    *   The user;
+   *
    * @return bool
    */
   protected function isDisallowedRoles(array $metadata, AccountProxyInterface $user)
@@ -138,4 +139,10 @@ class CustomAdminMenuMenuItemDisplayManager
     return $isDisallowed;
   }
 
+  public function filterItems(&$items) {
+    $items = array_filter($items, function ($item){
+      return !$this->itemIsDisallowed($item);
+    });
+  }
+
 }