/** * Get groups near a another address. * * @param Builder $q * @param Address $address * @param null $miles * * @return $this */ public function scopeNear(Builder $q, Address $address, $miles = null) { if (is_null($miles)) { $miles = Config::get('biblebowl.groups.nearby'); } return $q->active()->with(['address' => function ($q) use($miles, $address) { $q->whereNotNull($address->getLatColumn())->whereNotNull($address->getLngColumn())->within($miles, 'miles', $address->latitude, $address->longitude); }]); }