Preencher variável em um agrupamento

Tenho esse código:

DF_1 <- data.frame(ID = c("A","A","A","B","B","B","C","C","C ","D","D","D"),
                 PROC = c("11","22","33","44","55","66","77","88","99","10","20","30 "),
                 COLOR = c("OK","OK","OK","OK","PENDING","OK","PENDING","PENDING","PENDING","OK","OK","PENDING "))

Eu quero uma nova coluna com a seguinte condição: Se a Variável “COLOR”

tiver algum “PENDING”, todo o ID deve ser preenchido com PENDING, caso contrário continuar com OK.

A nova Variável deve chamar FINAL. O resultado final deve estar agrupado por ID e PROC deve ser esse:

DF_1 <- data.frame(ID = c("A","A","A","B","B","B","C","C","C","D" ,"D","D"),
                 PROC = c("11","22","33","44","55","66","77","88","99","10","20","30 "),
                 COLOR = c("OK","OK","OK","OK","PENDING","OK","PENDING","PENDING","PENDING","OK","OK","PENDING"),
                 FINAL = c("OK","OK","OK","PENDING","PENDING","PENDING","PENDING","PENDING","PENDING","PENDING","PENDING","PENDING"))

Eu tentei esse código, mas não funcionou:

  DF_1 <- DF_1 %>%
   group_by(ID, PROC) %>%
   mutate(FINAL = ifelse("PENDING" %in% COLOR, "PENDING", "OK")) %>%
   ungroup()

Como eu poderia resolver esse problema, por gentileza?

Ao que me parece, o group_by() deveria ser só por ID e não por ID e PROC.