Why we use revealed preferred condition in GARP instead of directly revealed preferred?
We need indirect comparisons because looking at direct comparisons is not sufficient to detect all types of inconsistencies. Suppose for instance that we observe $C(x,z)=\{x\},C(z,y)=\{z\}$ and $C(x,y)=\{y\}$. $C(x,y)=\{y\}$ implies that $y$ is "directly" revealed preferred to $x$. The reason why GARP is violated is that $C(x,z)=\{x\}$ and $C(z,y)=\{z\}$ imply that $x$ is "indirectly" revealed preferred to $y$, an inference that wouldn't be possible by looking at direct comparisons.