Fiz esse service object, mas não sei se está correto: https://github.com/geteloquent/talks/commit/0fb6cd5e693455fc264fb87bcc813716e28d8bb3#diff-9ab6fb951c3d22bcb11014f6241cfb16R6

E o decorator: https://github.com/geteloquent/talks/commit/0fb6cd5e693455fc264fb87bcc813716e28d8bb3#diff-36fcc7ea9a788e51d794a2a445d8c63aR15