Admin system role was being loaded for each permission check performed.
This caches the fetching for the request lifetime.
*/
public static function getSystemRole(string $systemName): ?self
{
- return static::query()->where('system_name', '=', $systemName)->first();
+ static $cache = [];
+
+ if (!isset($cache[$systemName])) {
+ $cache[$systemName] = static::query()->where('system_name', '=', $systemName)->first();
+ }
+
+ return $cache[$systemName];
}
/**