Query entries from two sections, check date field for one section and include pagination
Found the solution.

First get entries from section events as ID's and check endDate &lt; now:

{% set eventsIds = craft.entries()
  .section('events')
  .endDate('&lt; ' ~ now|date('c'))
  .ids()
%}


Then get entries from section news as ID's:

{% set newsIds = craft.entries()
  .section('news')
  .ids()
%}


Then merge those two together:

{% set entryIds = eventsIds|merge(newsIds) %}


Then paginate by id, set orderBy postDate and limit to 9:

{% paginate craft.entries()
  .id(entryIds)
  .orderBy('postDate desc')
  .limit(9)
  as pageInfo, pageEntries
%}