Możesz użyć CRON do wykonania tego zadania. Ale jeśli potrzebujesz wyczyścić bazę danych z nieukończonych zamówień tylko po to, aby pokazać zrealizowane dla ludzi i nie eksportujesz ich do innych miejsc (np. menedżer odwiedza backend raz dziennie i szuka zrealizowanych zamówień ręcznie), sugeruję, abyś nie zatrudniał CRON za to. Możesz dodać kilka linijek kodu, które usuną stare wpisy z bazy danych przy każdym dostępie do backendu.
Zapytania DELETE są wykonywane bardzo szybko, więc nie będzie problemów z wydajnością. Prawdziwe usunięcie danych zostanie wykonane tylko na żądanie. Nie musisz też mieć CRON (niektórzy tani dostawcy hostingu nie dają dostępu do tej usługi).