Acho que você precisa de um método guardião para verificar se um usuário tem permissão para executar uma determinada ação. Por exemplo: can_upgrade_server?
Além disso, ao fazer isso, você pode usar o método guardian.ensure_can_upgrade_server!, que verifica a condição e lança uma exceção, o que, na minha opinião, é exatamente o que você deseja.