refactor: invoice.rb