Moving towards a more Laravelish way of handling generation by using interfaces and facades