*/ protected function casts(): array { return [ 'posting_date' => 'datetime', ]; } public function account() { return $this->hasOneDeep(StatementAccount::class, [AccountStatement::class], ['id', 'id'], ['account_statement_id', 'statement_account_id']); } public function statement() { return $this->belongsTo(AccountStatement::class, 'account_statement_id', 'id'); } public function owners() { return $this->hasMany(StatementTransactionOwner::class); } public function owner_status() { return $this->owners()->whereIn('status',[ApprovalStatus::APPROVED,ApprovalStatus::COMPLETED,ApprovalStatus::PENDING_VERIFICATION]); } public function scopeDoesntMapStatement($query) { $query->whereDoesntHave('owners', function($query){ return $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); })->orderBy('posting_date'); } }