أعتقد أنك بحاجة إلى طريقة حارسة للتحقق مما إذا كان مسموحًا للمستخدم بتنفيذ إجراء معين. على سبيل المثال، can_upgrade_server?
أيضًا، بمجرد القيام بذلك، يمكنك استخدام طريقة guardian.ensure_can_upgrade_server! التي تتحقق من الشرط وتثير استثناءً، وهو ما أعتقد أنه بالضبط ما تريده.