Calculating Average Coordinates
The logic below was taken from the site: https://carto.com/blog/center-of-points/
Where the $coordinates argument is a collection of Coordinates objects. This Coordinates class, should be something like:
 1class Coordinates { 2    public function __construct(private float $latitude, private float $longitude) 3    {} 4  5    public function getLat(): float 6    { 7        return $this->latitude; 8    } 9 10    public function getLat(): float11    {12        return $this->longitude;13    }14}With this set, you can send this data to the method below to get the center of the coordinates in the collection.
 1public static function average(Collection $coordinates): array 2{ 3    $coordinates = $slots->map(function ($coordinates) { 4        $latitude = $coordinates->getLat(); 5        $longitude = $coordinates->getLng(); 6  7        return [ 8            'zeta' => sin(pi() * $longitude / 180), 9            'xi' => cos(pi() * $longitude / 180),10            'latitude' => $latitude,11        ];12    });13 14    $zeta = $coordinates->average('zeta');15    $xi = $coordinates->average('xi');16 17    $latitude = $coordinates->average('latitude');18    $longitude = 180 * atan2($zeta, $xi) / pi();19 20    return new Coordinates($latitude, $longitude);21}