The task has been patched and updated a lot, and the logic has ended up being very messy. The task should be refactored (perhaps using service objects?) so it's easier for developer onboarding.