Duplicated logic makes maintenance harder and increases bugs.
Avoiding duplication ensures that there is a single source of truth for a particular logic. If the discount logic is duplicated in multiple places, changing it requires updates in all those places, increasing the risk of errors.