A lot of confusing branching logic due to the mixing of paid and free events.
Solution: Separation into distinct classes using Single Table Inheritance patterns, allowing for both common and type-specific interfacing.
Event < ActiveRecord::Base
FreeEvent < Event
PaidEvent < Event