function cmd::remove::_cleanup() {
  local name="${1:-}" client_ip="${2:-}" was_blocked="${3:-false}"
  
  [[ -n "$client_ip" ]] && fw::flush_peer "$client_ip"
  peers::remove_from_server "$name"     || return 1
  peers::remove_client_config "$name"   || return 1
  keys::remove "$name"                  || return 1

  # Remove from all groups
  while IFS= read -r group_name; do
    group::remove_peer "$group_name" "$name"
    log::debug "Removed from group: ${group_name}"
  done < <(json::peer_groups "$(ctx::groups)" "$name")

  [[ -n "$client_ip" ]] && $was_blocked && fw::unblock_all "$client_ip"
  fw::remove_block_file "$name"         2>/dev/null || true
  peers::remove_meta "$name"            2>/dev/null || true
  peers::reload                         || return 1
}