Extracting queries from controller to model
This is a good place to use scopes. http://edgeguides.rubyonrails.org/active_record_querying.html#scopes Scopes are just syntactic sugar for class methods that return relations. In this way they can always be chain-able.

scope :ordered -&gt; { order(deadline: 'DESC') }
scope :paginated -&gt; (page: 1) { paginate(page: page, per_page: pagination_per_page) }
scope :assigned_default -&gt; (page: 1) { uncompleted.includes(executor: :profile).ordered.paginated(page: page) }