CPU Scheduling - Round Robin order on ready queue
With round-robin, the scheduler always selects the process that's had the most time since it was last run, and new processes coming in are always assigned a last run time of 1 time unit before the oldest last run time in the current list. (There are other equivalent ways to state this, but this is the simplest one for me. One other way to phrase this that works for many people is "processes that haven't had a chance to run yet have priority".)

So at t=8, we have:

Process Last-run Time-left
P1      0        5
P3      3        1
P4      -1*      6


Note the -1 for P4. The oldest last run time is P1, with 0. So P4 gets assigned -1, and hence gets selected.