diff --git a/src/Models/Role.php b/src/Models/Role.php
index <HASH>..<HASH> 100644
--- a/src/Models/Role.php
+++ b/src/Models/Role.php
@@ -74,6 +74,11 @@ class Role extends Model
     protected $with = ['abilities'];
 
     /**
+     * {@inheritdoc}
+     */
+    protected $observables = ['validating', 'validated'];
+
+    /**
      * The attributes that are translatable.
      *
      * @var array
@@ -116,6 +121,27 @@ class Role extends Model
     }
 
     /**
+     * {@inheritdoc}
+     */
+    public static function boot()
+    {
+        parent::boot();
+
+        if (isset(static::$dispatcher)) {
+            // Early auto generate slugs before validation
+            static::$dispatcher->listen('eloquent.validating: '.static::class, function ($model, $event) {
+                if (! $model->slug) {
+                    if ($model->exists) {
+                        $model->generateSlugOnCreate();
+                    } else {
+                        $model->generateSlugOnUpdate();
+                    }
+                }
+            });
+        }
+    }
+
+    /**
      * Register an attaching role event with the dispatcher.
      *
      * @param \Closure|string $callback
Early auto generate slugs before validation