hasOne(MarketData::class, 'symbol', 'symbol'); } /** * Gracefully loads related market data as relationship (creates if doesn't exist) */ public function loadMarketData(): void { if (is_null($this->market_data)) { $this->setRelation('market_data', MarketData::getMarketData($this->attributes['symbol'])); } } public function scopeNotBaseCurrency($query): void { $query->with('market_data') ->whereRelation( 'market_data', 'currency', '!=', config('investbrain.base_currency') ); } }