2d bezier curve not working as intended

Godot Version

<stable4.2>

Question

<Im trying to make characterbody2d to move along bezier curve toward player global position. However, projectile seems not moving as intended.
I would appreciate if you could help me.

extends CharacterBody2D

var speed := 1

@onready var player = get_node("../player")
@export var deviation_angle : float = 60
@export var deviation_distance = 100

var p0: Vector2
var p1: Vector2
var p2: Vector2
var t: float = 0.0

func _init():
	#set_as_top_level(true)
	pass

func set_destination(destination):
	p0 = self.global_position
	p2 = player.global_position

	var tilted_unit_vector = (p2-p0).normalized().rotated(deg_to_rad(-deviation_angle))
	p1 = p0 + deviation_distance * tilted_unit_vector

#func _quadratic_bezier() -> Vector2:
	#var q0: Vector2 = p0.lerp(p1, t)
	#var q1: Vector2 = p1.lerp(p2, t)
	#return q0.lerp(q1, t)

func _physics_process(delta):
	if t < 1.0:
		t += speed * delta

	position = position.bezier_interpolate(p0, p1, p2, t)

Inside enemy script, projectile will be instantiate():

func _shoot():
	print("THROW")
	var bomb = bombScene.instantiate()
	get_parent().add_child(bomb)
	bomb.global_position = $BombSpawnPoint.global_position