HackTheBox - Ellingson

dude i knew to execute as root we have to use uid => 0 . because root uid is 0.
But this is not my question.
For this (grabage) exploit only we are giving setuid() function at payload.
why we have to give this setuid().
garbage is already suid in permission,then why we have to it once again at payload.