/**
  * @param Collection $accounts
  *
  * @return Collection
  */
 public function getBillsForAccounts(Collection $accounts) : Collection
 {
     $fields = ['bills.id', 'bills.created_at', 'bills.updated_at', 'bills.deleted_at', 'bills.user_id', 'bills.name', 'bills.match', 'bills.amount_min', 'bills.amount_max', 'bills.date', 'bills.repeat_freq', 'bills.skip', 'bills.automatch', 'bills.active', 'bills.name_encrypted', 'bills.match_encrypted'];
     $ids = $accounts->pluck('id')->toArray();
     $set = $this->user->bills()->leftJoin('transaction_journals', function (JoinClause $join) {
         $join->on('transaction_journals.bill_id', '=', 'bills.id')->whereNull('transaction_journals.deleted_at');
     })->leftJoin('transactions', function (JoinClause $join) {
         $join->on('transaction_journals.id', '=', 'transactions.transaction_journal_id')->where('transactions.amount', '<', 0);
     })->whereIn('transactions.account_id', $ids)->whereNull('transaction_journals.deleted_at')->groupBy($fields)->get($fields);
     $set = $set->sortBy(function (Bill $bill) {
         $int = $bill->active == 1 ? 0 : 1;
         return $int . strtolower($bill->name);
     });
     return $set;
 }