Nos casos em que precisei fazer isso, não tive esse problema com a filtros. eu coloco na tabela order só alguns detalhes que podem ser alterados com o tempo, geralmente o nome do serviço/produto e o preço, pra que essa informação não se perca ou fique errada com o tempo conforme as atualizações aconteçam no sistema.
além desses dados que podem mudar, coloca o id do profissional e do serviço.
dessa forma se tiver alguma atualização no preço ou no nome de algum serviço/produto depois de uma compra já ter sido feita, o registro da compra não vai mudar, vai continuar com o mesmo preço e nome do serviço/produto, pros usuários comuns que vão entrar pra fazer o agendamento essa mudança não importa, ele só precisa ver os itens listados com os nomes atualizados. pra quem já comprou também não importa, ele só precisa ver o item da forma como comprou. pra quem gerencia, esses itens podem ser listados com nomes diferentes mas vão ter sempre o mesmo id do serviço e do profissional escolhidos