diff --git a/extensions/akismet/extend.php b/extensions/akismet/extend.php
index b67d3a2b6..0e9a96d37 100644
--- a/extensions/akismet/extend.php
+++ b/extensions/akismet/extend.php
@@ -8,15 +8,11 @@
  */
 
 use Flarum\Akismet\Listener;
+use Flarum\Akismet\Provider\AkismetProvider;
 use Flarum\Approval\Event\PostWasApproved;
 use Flarum\Extend;
-use Flarum\Http\UrlGenerator;
 use Flarum\Post\Event\Hidden;
 use Flarum\Post\Event\Saving;
-use Flarum\Settings\SettingsRepositoryInterface;
-use Illuminate\Contracts\Container\Container;
-use Illuminate\Contracts\Events\Dispatcher;
-use TijsVerkoyen\Akismet\Akismet;
 
 return [
     (new Extend\Frontend('forum'))
@@ -27,21 +23,11 @@ return [
 
     new Extend\Locales(__DIR__.'/locale'),
 
-    function (Dispatcher $events, Container $container) {
-        $container->bind(Akismet::class, function ($app) {
-            /** @var SettingsRepositoryInterface $settings */
-            $settings = $app->make(SettingsRepositoryInterface::class);
-            /** @var UrlGenerator $url */
-            $url = $app->make(UrlGenerator::class);
+    (new Extend\Event())
+        ->listen(Hidden::class, Listener\SubmitSpam::class)
+        ->listen(PostWasApproved::class, Listener\SubmitHam::class)
+        ->listen(Saving::class, Listener\ValidatePost::class),
 
-            return new Akismet(
-                $settings->get('flarum-akismet.api_key'),
-                $url->to('forum')->base()
-            );
-        });
-
-        $events->listen(Saving::class, Listener\ValidatePost::class);
-        $events->listen(PostWasApproved::class, Listener\SubmitHam::class);
-        $events->listen(Hidden::class, Listener\SubmitSpam::class);
-    },
+    (new Extend\ServiceProvider())
+        ->register(AkismetProvider::class),
 ];
diff --git a/extensions/akismet/src/Provider/AkismetProvider.php b/extensions/akismet/src/Provider/AkismetProvider.php
new file mode 100644
index 000000000..9ef071a9f
--- /dev/null
+++ b/extensions/akismet/src/Provider/AkismetProvider.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Flarum\Akismet\Provider;
+
+use Flarum\Foundation\AbstractServiceProvider;
+use Flarum\Http\UrlGenerator;
+use Flarum\Settings\SettingsRepositoryInterface;
+use TijsVerkoyen\Akismet\Akismet;
+
+class AkismetProvider extends AbstractServiceProvider
+{
+    public function register()
+    {
+        $this->app->bind(Akismet::class, function () {
+            /** @var SettingsRepositoryInterface $settings */
+            $settings = $this->app->make(SettingsRepositoryInterface::class);
+            /** @var UrlGenerator $url */
+            $url = $this->app->make(UrlGenerator::class);
+
+            return new Akismet(
+                $settings->get('flarum-akismet.api_key'),
+                $url->to('forum')->base()
+            );
+        });
+    }
+}