code: public function calculateDestination(Coordinate $point, float $bearing, float $distance): Coordinate
      {
          $D = $distance / static::EARTH_RADIUS;
          $B = deg2rad($bearing);
          $φ = deg2rad($point->getLat());
          $λ = deg2rad($point->getLng());
  
          $Φ = asin(sin($φ) * cos($D) + cos($φ) * sin($D) * cos($B));
          $Λ = $λ + atan2(sin($B) * sin($D) * cos($φ), cos($D) - sin($φ) * sin($φ));
  
          return new Coordinate(rad2deg($Φ), rad2deg($Λ));
      }
docs: Calculates a destination point for the given point, bearing angle,
  and distance.
  
  @param Coordinate $point
  @param float $bearing the bearing angle between 0 and 360 degrees
  @param float $distance the distance to the destination point in meters
  
  @return Coordinate
  @throws InvalidArgumentException