Lo primero y más importante! Nova permite el acceso a cualquier usuario cuando el enviroment es "local". Por lo tanto, ten en cuenta que en producción tienes que tener el .env asignando una variable APP_NEV que no sea "local". Por ejemplo:
APP_ENV=production
Ese detalle es bien importante, ya que si no lo cambias, por mucho que modifiques el gate de Laravel Nova, estarías dejando acceso a cualquier persona al sistema de administración.
Luego, ya para modificar el gate de nova tienes que ir al archivo de la ruta:
app/Providers/NovaServiceProvider.php
Allí modificar el gate "viewNova" para usar el sistema de roles. Te quedaría un código así:
protected function gate()
{
Gate::define('viewNova', function ($user) {
return $user->hasRole('admin');
});
}