initJournal(setting('units.currency')); }); } /** * Morph to Journal. * * @return mixed */ public function journal() { return $this->morphOne(Journal::class, 'morphed'); } /** * Initialize a journal for a given model object * * @param string $currency_code * * @throws \Exception * * @return Journal */ public function initJournal($currency_code = 'USD') { if (!$this->journal) { $journal = new Journal(); $journal->type = $this->journal_type; $journal->currency = $currency_code; $journal->balance = 0; $this->journal()->save($journal); $journal->refresh(); return $journal; } } }