You can change the character to a factor specifying the levels and that order will be used when plotting. See example below:
library(tidyverse)
dat_examp <- tibble(
visits=c("screening day", "cycle day 1", "cycle 1 day 9", "cycle 2 day 1", "cycle 2 day 9", "Final day"),
results= c(10, 12, 11, 24, 18, 11)
) %>%
mutate(
visits_f=factor(visits, levels=c("screening day", "cycle day 1", "cycle 1 day 9", "cycle 2 day 1", "cycle 2 day 9", "Final day"))
)
dat_examp %>%
ggplot(aes(x=visits_f, y=results, group="one")) +
geom_point() + geom_line()

Created on 2021-10-15 by the reprex package (v2.0.1)